0
를 큐 에 의해 다른 프로세스에서 수신을 시도 :내가 성공적으로 다음 명령을 사용하여 메시지 큐를 만든
msgrcv(msgIdHareTurtle, (struct msgbuf *)&bufHareTurtle, sizeof(int), 0, IPC_NOWAIT);
내 구조 bufHareTurtle은 다음과 같은 유형 인 :
typedef struct smsgbuf{
long mtype;
unsigned int position;
} smsgbuf;
내 질문 : 성공 프로그램 (프로세스 모두가) 너무 실행하지만 예 2의 부호없는 정수를 보내고 때마다, 나는 항상 (후기 과정 IN) 수신 VALUE 무엇입니까 전송 AS 0 EVRYTIME. 누군가이 코드의 오류 또는 다른 오류의 가능성을 말해 줄 수 있습니까?
이 2는 위치 변수의 값인 – higherDefender
msgrcv와 msgsnd의 반환 값을 확인하고 mtype이 0보다 큰지 확인한다. –
비 차단 읽기/쓰기 (IPC_NOWAIT) 정말로 메시지를 받았 는가? – nos