- 论坛徽章:
- 0
|
一个和消息队列的问题,不知道怎么回事
- #include <stdio.h>;
- #include <unistd.h>;
- #include <sys/types.h>;
- #include <sys/ipc.h>;
- #include <sys/msg.h>;
- int main()
- {
- char *str;
- int pid,msgid;
- char str2[255];
- str=(char *)malloc(255);
- msgid=msgget(IPC_PRIVATE,IPC_CREAT|0660);
- if(msgid<0)
- {
- printf("message initial false!!\n");
- return -1;
- }
- pid=fork();
- if(pid<0)
- {
- printf("fork error!!\n");
- return -1;
- }
- if(pid>;0)
- {
- memset(str,0,255);
- sprintf(str,"the string transported by message");
- printf("str1:%s\n",str);
- msgsnd(msgid,str,255,0);
- }
- if(pid==0)
- {
- memset(str2,0,255);
- msgrcv(msgid,str2,255,0,0);
- printf("str2:%s\n",str2);
- }
- free(str);
- return 0;
- }
复制代码 |
|