🌰在这里

1
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
/**
* 进程间通信 发送端
**/
int main()
{
	int msgid;

  	struct msg {
		long type;
		char data[20];
	} don = {
		.type = 1L,
		.data = "Hello Msg",
	};	// 消息类型

	//struct msg don; // 实例化

	key_t key;

	key = ftok("/home" , 'i');

	msgid = msgget(key, IPC_CREAT | 0666);	
	
	msgsnd(msgid, &don, sizeof(don) - sizeof(long), 0);	
	
	return 0;
}
1
#include<stdio.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>
/**
* 进程间通信 接收端
**/
int main()
{
	int msgid;
	
	key_t key;

	struct msg
	{
		long type;
		char data[20];
	};

	struct msg don;	// 实例化 虽然变量名一样,但互不干扰
	
	key = ftok("/home",'i');

	msgid = msgget(key, 0666);

	while(1)
	{
		msgrcv(msgid, &don, sizeof(don) - sizeof(long), 0, 0);	
	
		printf("rcvbuf = %s\n", don.data);
	}

	return 0;
}