设为首页 加入收藏

TOP

多进程编程(十三)
2012-08-26 13:53:26 来源: 作者: 【 】 浏览:13320
Tags:进程 编程
;  /*等待方式在include文件中未定义*/
             int rmsqid;             /*读消息队列标识符*/
             int wmsqid;             /*写消息队列标识符*/
             struct msgbuf {
                 long mtype;
                 char mtext[200];
             } buf;
             /*若读消息队列已存在就取得标识符,否则则创建并取得标识符*/
             if ((rmsqid=msgget(RKEY,MSGFLG|IPC_CREAT))<0) {
                 printf("get read message queue failed\n");
                 exit(1);
             }
             /*若写消息队列已存在则失败,若不存在则创建并取得标识符*/
             if ((wmsqid=msgget(WKEY,
                  MSGFLG|IPC_CREAT|IPC_TRUNC))<0) {
                 printf("get write message queue failed\n");
                 exit(2);
             }
             /*接收所有类型的消息*/
             if (msgrcv(rmsqid,&buf,sizeof(struct msgbuf)-sizeof(long),
                  0L,IPC_WAIT)>0)
                 printf("get %ld type message from queue:%s\n",
                        buf.mtype,buf.mtext);
             else {
                 printf("get message failed\n");
                 exit(3);
             }
             buf.mtype=3L
             if (msgsnd(wmsqid,&buf,sizeof(struct msgbuf)-sizeof(long),
                  IPC_NOWAIT)>0)
                 printf("send message OK\n");
             else {
                 printf("send message failed\n");
                 exit(4);
             }
             msgctl(wmsqid,IPC_RMID,(struct msqid *)NULL);
    17.shmat()
        功能:联接共享内存的操作.
        语法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/shm.h>
             void *shmat(shmid,shmaddr,shmflg)
             int shmid;
             void *shmaddr;
             int
首页 上一页 10 11 12 13 14 15 16 下一页 尾页 13/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Core Dump?! 下一篇字符串转换篇

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: