인프런 커뮤니티 질문&답변
wsl에서 fcntl사용
해결된 질문
작성
·
37
0
17:33 내용
현재 쉘이 갖고 있는 쉘의 그 특성을 상속을 받아서 이제 프로세스가 동작을 하기 때문에
wsl에서는 이렇지 않은 것 같습니다.
왜 그런가요??
답변 2
0
random123
질문자
네 제가 질문을 구체적으로 적지 못했던거 같습니다
우리가 이 파일 디스크립터를 non-blocking mode로 standard in에 대한 이 동작 모드를
Non-blocking mode로 설정을 하고 프로그램을 끝냈기 때문에 이 창은 계속 이제부터는 standard in은
Non-blocking mode로 이제 시작이 됩니다.
라고 말씀하셨는데
fcntl을 한번 실행하고 종료 한 다음에
다시 재실행해도 read() 함수가 blocking 모드로 동작합니다.

0
런잇(ProgCoach4U)
지식공유자
안녕하세요 random123님.
먼저, 답변이 너무 늦어진 점 죄송합니다.ㅠㅠ 질문이 올라온 것을 인지하지 못했네요. 죄송합니다.ㅠㅠ
제가 WSL의 구조를 정확히 알지 못하지만, 쉘에서 띄운 프로세스가 쉘의 속성을 받아 동작하는 부분이 달라질 것 같지는 않은데요.. 구체적으로 어떻게 동작하는 것을 보시고 WSL은 다르다고 생각하셨을까요? 좀 더 구체적인 내용 공유 부탁드리겠습니다.






안녕하세요 random123님.
제가 진행한 실습에서는 분명히 shell의 STDIN에 NONBLOCKING이 설정되어 fcntl 프로그램을 두번째 실행했을 때 STDIN은 non-blocking mode로 동작하는 것이 맞습니다.
하지만 WSL에서는 그렇지 않다고 알려주셨는데요, 이는 WSL 혹은 shell의 동작 특성이라고 봐야할 것 같습니다. 확실히 Linux와는 다르게 동작하는 것으로 보이네요..
제가 WSL에 대해 잘 알지 못해서요.. 정확한 원인 파악 및 분석이 어려운 점 죄송합니다.