我使用fork()创建了在2个不同地址空间上运行的2个不同进程。 现在,在父进程中,我需要来自子地址空间的变量值,或者子进程是否可以修改父地址空间中的变量。 这可能吗?
答案 0 :(得分:5)
不,一旦你分叉,每个进程都会获得自己的地址空间,你将不得不考虑:
答案 1 :(得分:2)
一旦有两个进程,共享数据就需要进程间通信:文件,管道或共享内存。
答案 2 :(得分:2)
如果您的意思是在这两个流程之间交换数据,则不能。您可以通过SharedMemory,Message Passing,Pipeline,Socket等系统API来实现它。
答案 3 :(得分:0)
由于您使用fork命令创建了两个进程,因此两个进程将位于不同的地址空间中,因此它们只能通过IPC,消息传递,管道,共享内存等进行通信。否则,一个进程无法访问其他进程数据拥有流程特定数据 类似的线程也有线程特定的数据