C++ Linux信号量,跨分叉共享->;执行官';d过程?

C++ Linux信号量,跨分叉共享->;执行官';d过程?,c++,linux,synchronization,ipc,semaphore,C++,Linux,Synchronization,Ipc,Semaphore,假设我有一个父母给孩子分叉子。分叉子进程然后使用exec()更改其进程映像。现在,子级和父级都使用管道进行活动数据交换。我想使用信号量同步这个数据交换。据我所知,我将在fork之前的父级中创建信号量。但是,exec()之后的子级是否能够访问此信号量? 如果没有,是否有其他方法可以使用信号量建立同步?来自: [SEM]在调用过程中打开的任何命名信号量都应关闭,就像通过适当调用SEM_close()关闭一样。 因此,在调用exec之后,您无法访问父级中任何打开的Semephore 当然,如果您希望两

假设我有一个父母给孩子分叉子。分叉子进程然后使用exec()更改其进程映像。现在,子级和父级都使用管道进行活动数据交换。我想使用信号量同步这个数据交换。据我所知,我将在fork之前的父级中创建信号量。但是,exec()之后的子级是否能够访问此信号量? 如果没有,是否有其他方法可以使用信号量建立同步?

来自:
[SEM]在调用过程中打开的任何命名信号量都应关闭,就像通过适当调用SEM_close()关闭一样。

因此,在调用exec之后,您无法访问父级中任何打开的Semephore

当然,如果您希望两个进程共享一个信号量,您根本不必担心这一点,只要使用即可。

这个想法很简单,你在一个进程中创建一个信号量并给它命名;另一个进程只需要有名称,然后就可以打开该信号量