作家
登录

Linux进程间通信——使用消息队列

作者: 来源: 2017-06-19 15:49:28 阅读 我要评论

  •  
  • #include <errno.h>   
  •  
  • #include <sys/msg.h>   
  •  
  •    
  •  
  • struct msg_st   
  •  
  • {   
  •  
  •     long int msg_type;   
  •  
  •     char text[BUFSIZ];   
  •  
  • };   
  •  
  •    
  •  
  • int main()   
  •  
  • {   
  •  
  •     int running = 1;   
  •  
  •     int msgid = -1;   
  •  
  •     struct msg_st data;   
  •  
  •     long int msgtype = 0; //留意1   
  •  
  •    
  •  
  •     //建立消息队列   
  •  
  •     msgid = msgget((key_t)1234, 0666 | IPC_CREAT);   
  •  
  •     if(msgid == -1)   
  •  
  •     {   
  •  
  •         fprintf(stderr, "msgget failed with error: %d\n", errno);   
  •  
  •         exit(EXIT_FAILURE);   
  •  
  •     }   
  •  
  •     //大年夜队列中获撤消息,直到碰到end消息为止   
  •  
  •     while(running)   
  •  
  •     {   
  •  
  •         if(msgrcv(msgid, (void*)&data, BUFSIZ, msgtype, 0) == -1)   
  •  
  •         {   
  •  
  •             fprintf(stderr, "msgrcv failed with errno: %d\n", errno);   
  •  
  •             exit(EXIT_FAILURE);   
  •  
  •         }   
  •  
  •         printf("You wrote: %s\n",data.text);   
  •  
  •         //碰到end停止   
  •  
  •         if(strncmp(data.text, 

      推荐阅读

      Windows 10 Build 16215带来的11大Fall Creators Update最佳功能_IT技术周刊第506期

    【义务编辑:刘晶晶 TEL:(010)68476606】 >>>详细阅读


    本文标题:Linux进程间通信——使用消息队列

    地址:http://www.17bianji.com/lsqh/35826.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)