当前位置:天才代写 > tutorial > C语言/C++ 教程 > Linux下C编程:动静行列实例

Linux下C编程:动静行列实例

2017-11-02 08:00 星期四 所属: C语言/C++ 教程 浏览:612

动静行列是一系列持续分列的动静,生存在内核中,通过动静行列的引用标识符来会见。动静行列与管道很相似,但利用动静行列的长处是对每个动静指定了特定动静范例,吸收动静的历程可以请求吸收下一条动静,也可以请求吸收下一条特定范例的动静。

#include <sys/types.h>     
#include <sys/ipc.h>     
#include <sys/msg.h>     
#include <stdio.h>     
#include <string.h>     
         
int main()     
{     
    key_t unique_key;     
    int msgid;     
             
    int status;     
    char str1[]={"test message:hello muge0913"};     
    char str2[]={"test message:goodbye muge0913"};     
             
    struct msgbuf     
    {     
    long msgtype;     
    char msgtext[1024];     
    }sndmsg,rcvmsg;     
         
    if((msgid = msgget(IPC_PRIVATE,0666))==-1)     
    {     
    printf("msgget error!\n");     
    exit(1);     
    }     
         
    sndmsg.msgtype =111;     
    sprintf(sndmsg.msgtext,str1);     
         
    if(msgsnd(msgid,(struct msgbuf *)&sndmsg,sizeof(str1)+1,0)==-1)     
    {     
    printf("msgsnd error!\n");     
    exit(1);     
    }     
         
    sndmsg.msgtype =222;     
    sprintf(sndmsg.msgtext,str2);     
    if(msgsnd(msgid,(struct msgbuf *)&sndmsg,sizeof(str2)+1,0)==-1)     
    {     
    printf("msgsnd error\n");     
    exit(1);     
    }     
         
    if((status = msgrcv(msgid,(struct msgbuf *)&rcvmsg,80,222,IPC_NOWAIT))==-1)     
    {     
    printf("msgrcv error\n");     
    exit(1);     
    }     
         
    printf("The receved message:%s\n",rcvmsg.msgtext);     
    msgctl(msgid,IPC_RMID,0);     
    exit(0);     
}

Linux下C编程:消息队列实例

查察全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm

 

    关键字:

天才代写-代写联系方式