天天看點

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);
}      

繼續閱讀