带fork的IPC消息队列,希望知道进程是“共享”消息缓冲区,还是只是复制并“显示”到另一个进程

带fork的IPC消息队列,希望知道进程是“共享”消息缓冲区,还是只是复制并“显示”到另一个进程,c,fork,ipc,message-queue,C,Fork,Ipc,Message Queue,我是一名学生,曾在C语言中用fork编程多进程矩阵乘法 但当我这么做的时候,我有个问题 当我们将IPC与消息队列一起使用时, 如果我把 struct message_buffer{ long mtype; int result[100][100]; } 像这样,, 我知道这是没有效率的,因为空间一直被复制为消息,但。。。 我认为这是所有进程共享结果表的唯一方法……还有其他方法吗 不管怎样,如果我像这样放置结果数组表, 然后在内存中创建结果表的位置 他们在内核位置创建位置,并真正“共享”该位置,

我是一名学生,曾在C语言中用fork编程多进程矩阵乘法

但当我这么做的时候,我有个问题 当我们将IPC与消息队列一起使用时, 如果我把

struct message_buffer{
long mtype;
int result[100][100];
}
像这样,, 我知道这是没有效率的,因为空间一直被复制为消息,但。。。 我认为这是所有进程共享结果表的唯一方法……还有其他方法吗

不管怎样,如果我像这样放置结果数组表, 然后在内存中创建结果表的位置

他们在内核位置创建位置,并真正“共享”该位置,但将抽象作为消息

消息缓冲区在一个主进程中创建,不共享,只复制并显示给另一个进程

请给我一个提示:“我真的想知道

如果它们不共享消息缓冲区,那么我如何才能让进程“共享”公共空间


谢谢……你应该考虑使用线程。它们共享全局变量,线程之间的通信更容易