/*创建消息队列*/ msgid=msgget(IPC_PRIVATE,0666 | IPC_CREAT);
来源:互联网 发布:php输出素数 编辑:程序博客网 时间:2024/06/03 16:52
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define MAX_TEXT 512struct my_msg_st{ long int my_msg_type;char some_text[MAX_TEXT];};int main(void){ long int msg_to_receive=0;struct my_msg_st some_data;int msgid;char buffer[BUFSIZ];pid_t pid;/*创建消息队列*/msgid=msgget(IPC_PRIVATE,0666 | IPC_CREAT);if(msgid==-1){ fprintf(stderr,"msgget failed with error:%d\n",errno);exit(EXIT_FAILURE); }/*向消息队列中添加消息*/pid=fork();if(pid<0){ fprintf(stderr,"fork failed with error:%d\n",errno);exit(EXIT_FAILURE);}else if(pid){ printf("Enter some text:");fgets(buffer,BUFSIZ,stdin);some_data.my_msg_type=1;strcpy(some_data.some_text,buffer);/*添加消息*/if(msgsnd(msgid,(void *)&some_data,MAX_TEXT,0)==-1){ fprintf(stderr,"msgsed failed\n");exit(EXIT_FAILURE);}wait(NULL);}else{sleep(2);/*读取消息*/ if(msgrcv(msgid,(void *)&some_data,BUFSIZ,msg_to_receive,0)==-1){ fprintf(stderr,"msgrcv failed with error: %d\n",errno);exit(EXIT_FAILURE);}printf("You wrote: %s",some_data.some_text);/*从系统内核中移走消息队列*/if(msgctl(msgid,IPC_RMID,0)==-1){ fprintf(stderr,"msgctl(IPC_RMID) failed\n");exit(EXIT_FAILURE);}}return 0;}
- /*创建消息队列*/ msgid=msgget(IPC_PRIVATE,0666 | IPC_CREAT);
- msgget()打开或新建一个消息队列
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)
- 求教msgget(key, 0644 | IPC_CREAT)是什么意思,0644代表什么?谢谢~~~
- (转)linux消息队列函数 msgget,msgsnd, msgrcv, ftok()
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- linux消息队列函数msgget,msgsnd,_msgrcv,_ftok()
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例 .
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- linux消息队列函数msgget,msgsnd, msgrcv, ftok()
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
- linux ----消息队列(ftok,msgget,msgsnd,msgrcv,msgctl)
- JAVA中断线程的方法
- RTSP H264播放器(基于live555、ffmpeg、d3d应用)
- ArcGIS Engine 10报错:ArcGIS version not specified...
- Hibernate
- thinkphp学习笔记之查询语句
- /*创建消息队列*/ msgid=msgget(IPC_PRIVATE,0666 | IPC_CREAT);
- Java生成XML文件-封装类
- ArcGIS for iOS 开发系列(1) – 基本概念
- openSUSE上安装Mono并发布ASP.Net程序
- spm build 打包方式
- 关于UIView的autoresizingMask属性的研究
- Redmine安装完全图文指南
- limit 覆盖索引优化
- 一组路径操作的API