linux 消息队列

#include<sys/ipc.h>
#include<sys/msg.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<memory.h>
#include<string.h>
char path[100]={0};

typedef struct{
    long mtype;
    char buff[1024];
}MSG;

key_t getKey(){
    getcwd(path,sizeof(path)-1);
    return ftok(path,0);
}


int main(){
    int msgid=msgget(getKey(),IPC_CREAT|0666);
    MSG msg;
    memset(&msg,0,sizeof(msg));
    msg.mtype=1;
    char buff[100]="1234567890asdfghjklqwertyuiopzxcvbnm,./";
    memcpy(msg.buff,buff,sizeof(buff));    

    msgsnd(msgid,&msg,sizeof(MSG)-8,0);
}
#include<sys/ipc.h>
#include<sys/msg.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<memory.h>
#include<string.h>
char path[100]={0};

typedef struct{
    long mtype;
    char buff[1024];
}MSG;

key_t getKey(){
    getcwd(path,sizeof(path)-1);
    return ftok(path,0);
}


int main(){
    int msgid=msgget(getKey(),0666);
    printf("msg id is %d\n",msgid);
    MSG     msg;
    memset(&msg,0,sizeof(msg));
    msgrcv(msgid,&msg,sizeof(msg)-8,1,IPC_NOWAIT);
    printf("rcv %s\n",msg.buff);
}

 

上一篇:linux上的socket通信


下一篇:内存性能分析工具