mkfifo 와 select 질문요...

ㅡ,.ㅡ;;의 이미지

mkfifo로 파이프 생성후

open 하면 반대편끝에 파이프가 연결되길 기다리게되는데

이것이 무한히 대기하기때문에 일정시간동안만 대기하도록 timeout 를주고 싶었습니다.

그래서 nonblock 으로 open 한후

select( maxfd, NULL, &mfds, NULL, &tm );

를 걸면되지 않을까 생각했는데
받기위해 반대편에 접속된 파이프접속을 인식하지 못하더군요...
원래부터 안되는것인지 아니면다른방법이 있나요?

stoneshim의 이미지

select () 함수 사용하신것을 보니, mkfifo 하고 open 후 기다리는 쪽이 write 할 쪽인 모양이네요.

read하는 쪽에서 mkfifo, open 후 기다리는 방식으로 변경하시면 가능할듯 합니다만...

read하는 쪽에서 select() 하고 있어도, write 할 쪽이 해당 fifo를 open 한다고 감지하지는 못할것 같습니다. 다만 write 쪽이 fifo에 write 할때 select () 에서 감지가 될듯 한데요.

가능하시다면 이쪽으로 구조를 변경하시면 좋겠네요.

우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자

ㅡ,.ㅡ;;의 이미지

그렇군요..
답변감사합니다.


----------------------------------------------------------------------------