2013-03-01 2 views
0

msgsnd와 msgrcv를 사용 중입니다. 수신하기 전에 메시지가 전송 될 때까지 기다리는 방법을 알고 싶습니다.메시지를 수신 할 때까지 기다리시겠습니까? msgrcv C++

프로세스 A는

프로세스 B는 메시지를 전송

프로세스 A는 메시지를 수신, 프로세스 B는 자신의 일을 할 수 있도록 세마포어 신호.

프로세스 A가 B가 전송할 때까지 대기하지 않으므로 빈 메시지를 인쇄하는 것입니다. 접근 방법은 무엇입니까? 감사

답변

1

프로세스 A가 기다리고 있지 않은 경우, 당신은 분명히이 플래그를 설정하는

IPC_NOWAIT 반환 즉시 요구 된 타입의 메세지가 큐에없는 경우. errnoENOMSG으로 설정된 경우 시스템 호출이 실패합니다.

기다리는 동안 해당 플래그를 사용하지 말거나 기다리는 동안 유용한 작업을 수행하려면 errno을 확인하고 나중에 다시 호출하십시오.

관련 문제