이것은 msg를 대기열로 보내는 간단한 프로그램이지만 "snd 오류"를 출력으로 제공합니다. 큐가 생성됩니다. 나는 ipcs -q로 확인했다. 내가 뭘 잘못 했니?IPC 대기열 msgsnd 오류
#include<stdio.h>
#include<unistd.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<sys/types.h>
#include<stdlib.h>
struct msg{
int mtype;
char mtext[1024];
}snd;
void main()
{
int id;
if(id=msgget(1234,IPC_CREAT|0666)<0)
{
printf("ipc error");
}
else{
snd.mtype=1;
scanf("%[^\n]",snd.mtext);
getchar();
if(msgsnd(id,&snd,sizeof(snd.mtext),IPC_NOWAIT)<0){
printf("snd error");
}
else {
printf("msg snd");
}
}
}
주위에 적어도 괄호에 넣어? fgets를 사용하여보세요? –
하지만 그건 내가 추측하는 문제가 아니어야합니다. 복사 붙여 넣기를 시도하고 http://simplestcodings.blogspot.in/2010/08/ipc-message-queue-implementation-in-c.html에서 코드를 실행하면 제대로 작동합니다. 하지만 내 프로그램이 작동하지 않니? –