강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của random123
random123

câu hỏi đã được viết

Lập trình hệ thống Linux - Lý thuyết và thực hành

Kiểm soát thuộc tính tệp - Lập trình trực tiếp

wsl에서 fcntl사용

Đã giải quyết

Viết

·

39

0

17:33 내용

현재 쉘이 갖고 있는 쉘의 그 특성을 상속을 받아서 이제 프로세스가 동작을 하기 때문에

 

wsl에서는 이렇지 않은 것 같습니다.

왜 그런가요??

linux

Câu trả lời 2

0

random123님의 프로필 이미지
random123
Người đặt câu hỏi

네 제가 질문을 구체적으로 적지 못했던거 같습니다

우리가 이 파일 디스크립터를 non-blocking mode로 standard in에 대한 이 동작 모드를

Non-blocking mode로 설정을 하고 프로그램을 끝냈기 때문에 이 창은 계속 이제부터는 standard in은

Non-blocking mode로 이제 시작이 됩니다.

라고 말씀하셨는데

fcntl을 한번 실행하고 종료 한 다음에

다시 재실행해도 read() 함수가 blocking 모드로 동작합니다.

 

image.png

 

 


learnit님의 프로필 이미지
learnit
Người chia sẻ kiến thức

안녕하세요 random123님.

제가 진행한 실습에서는 분명히 shell의 STDIN에 NONBLOCKING이 설정되어 fcntl 프로그램을 두번째 실행했을 때 STDIN은 non-blocking mode로 동작하는 것이 맞습니다.

하지만 WSL에서는 그렇지 않다고 알려주셨는데요, 이는 WSL 혹은 shell의 동작 특성이라고 봐야할 것 같습니다. 확실히 Linux와는 다르게 동작하는 것으로 보이네요..

제가 WSL에 대해 잘 알지 못해서요.. 정확한 원인 파악 및 분석이 어려운 점 죄송합니다.

0

learnit님의 프로필 이미지
learnit
Người chia sẻ kiến thức

안녕하세요 random123님.

먼저, 답변이 너무 늦어진 점 죄송합니다.ㅠㅠ 질문이 올라온 것을 인지하지 못했네요. 죄송합니다.ㅠㅠ

제가 WSL의 구조를 정확히 알지 못하지만, 쉘에서 띄운 프로세스가 쉘의 속성을 받아 동작하는 부분이 달라질 것 같지는 않은데요.. 구체적으로 어떻게 동작하는 것을 보시고 WSL은 다르다고 생각하셨을까요? 좀 더 구체적인 내용 공유 부탁드리겠습니다.

 

Hình ảnh hồ sơ của random123
random123

câu hỏi đã được viết

Đặt câu hỏi