강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

random123님의 프로필 이미지
random123

작성한 질문수

리눅스 시스템 프로그래밍 - 이론과 실습

파일 속성 제어 - 라이브 프로그래밍

wsl에서 fcntl사용

해결된 질문

작성

·

37

0

17:33 내용

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

 

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

왜 그런가요??

답변 2

0

random123님의 프로필 이미지
random123
질문자

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

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

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

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

라고 말씀하셨는데

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

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

 

image.png

 

 


런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

안녕하세요 random123님.

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

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

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

0

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

안녕하세요 random123님.

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

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

 

random123님의 프로필 이미지
random123

작성한 질문수

질문하기