LINUX使用消息队列的代码

代码如下:

#define KEY         412
#define TYPE        66
#define BUFFER_SIZE 1024


//第一个字段必须是type
typedef struct
{
    long type; //必须是long
    char data[BUFFER_SIZE];
} Message;

void send_message()
{
    int msg_q_id = msgget((key_t)KEY, O_WRONLY | 0777);
    if (msg_q_id < 0)
    {
        return;
    }

    Message msg = {0};
    msg.type = TYPE;
    strcpy(msg.data, "csdn");
    //扣除type
    msgsnd(msg_q_id, &msg, BUFFER_SIZE, 0);
}

void receive_message()
{
    int msg_q_id = msgget((key_t)KEY, IPC_CREATE | O_RDONLY | 0777);
    if (msg_q_id < 0)
    {
        return;
    }

    Message msg = {0};
    msg.type = TYPE;
    //扣除type
    msgsrcv(msg_q_id, &msg, BUFFER_SIZE, TYPE, 0);
}

 

你可能感兴趣的:(C/C++,Linux/Shell)