思维导图:

消息队列原理:

进程在内核空间中维护出消息队列,每个进程借由消息队列的msgid对消息队列进行读写操作,消息队列中的信息是一个结构体,存储着消息的种类(身份证)和消息的内容,多个进程间可以通过消息的种类来进行通讯,例如:进程A放了一个种类为A的信息,进程B只读取种类为A的信息,通过这种方式实现了进程间的定向信息传输。
共享内存原理:

共享内存第一步是先将一块物理内存映射到内核空间,在内核空间维护出一块共享内存,然后每个进程可以通过指针的方式共同访问这块内存空间,并进行读写操作,实现进程通信。类似malloc用法。
使用消息列队实现两个进程间接受发送信息
发送端:
#include <head.h>
typedef struct m
{
long type;
char text[1024];
}sake;
#define SIZE sizeof(struct m)-sizeof(long)
int main(int argc, const char *argv[])
{
key_t key;
if((key=ftok("/",'a'))==-1)
{
perror("");
return -1;
}
i

本文详细介绍了在Linux系统中,如何通过消息队列和共享内存实现进程间通信,包括消息队列的工作原理、使用示例以及进程间通信的其他方式如共享内存、信号量等。还讨论了进程间通信的同步机制和避免僵尸进程的方法。
最低0.47元/天 解锁文章
3371

被折叠的 条评论
为什么被折叠?



