C 多个子进程之间的共享内存

C 多个子进程之间的共享内存,c,fork,shared,C,Fork,Shared,有可能吗?对于我试图制作的程序,禁止使用线程 程序forkN次读取N个pipes并打印其内容。我需要在子进程之间共享一个全局变量,该变量在更改时会影响所有子进程(只需将\n放在正确的位置) 到目前为止,我尝试用shmget和shmat复制父母和孩子的例子,但没有成功。我经常遇到分段错误 是否有一个简单的例子说明如何在分叉的子对象之间共享变量 我正在寻找的一个输出示例: Program 1 = Hello Program 2 = Hi Program 1 = World Program 1

有可能吗?对于我试图制作的程序,禁止使用
线程

程序
fork
N次读取N个
pipes
并打印其内容。我需要在子进程之间共享一个全局变量,该变量在更改时会影响所有子进程(只需将
\n
放在正确的位置)

到目前为止,我尝试用shmget和shmat复制父母和孩子的例子,但没有成功。我经常遇到
分段错误

是否有一个简单的例子说明如何在分叉的子对象之间共享变量

我正在寻找的一个输出示例:

Program 1 = 
Hello
Program 2 = 
Hi
Program 1 =
World 
Program 1 = 
End
Program 2=
World2
Program 2=
End2

有时输出已打印出
换行符
字符,有时不打印,我需要不时插入
换行符
字符。

这很可能是一个。我正在编写的程序执行其他程序并打印其输出。我需要区分哪个输出来自哪个程序,因此我不能对所有进程使用单个管道。如果你认为真正的问题是这一部分,我很想知道你将如何以不同的方式处理它。如何区分?您可以通过进程ID进行区分(每个进程都知道自己的进程)。或者,您可以将唯一标识符传递给每个派生的进程。发布一个示例输出。我添加了一个示例,我认为您使用PID进行区分的想法可能是一个好主意。或者您可以有一个变量,在每个
fork
之前递增,这样每个fork进程都会有一个不同的数字。