标签: c select fork
我有一个父进程,它分叉了一个子进程。我为子进程的stdin / out / err创建管道,将父对方的另一端的fds存储为pipe[0],pipe[1],pipe[2]。
pipe[0]
pipe[1]
pipe[2]
由于select()上的数据准备就绪,我发现pipe[2]将返回竞争状态,但数据已准备就绪pipe[1]和pipe[1]的数据获取首先编写,因为if的{{1}}语句。
select()
if
有没有办法让我避免这种竞争条件,并保留关于子进程写入它们的顺序?
以下是相关代码: