我想将两个linux命令链接在一起,这样命令1就可以不断地将数据传递/流式传输到命令2。在我的例子中,命令1生成一个(逐行)数据库导出,我想通过管道将其添加到命令2(它将调用一个函数,将每个数据导出行写入新的数据库)。 例如。How to pipe input to python line by line from linux program?
read(fds[0], ...) in spawn()不应该阻塞。一旦调用read,管道的所有写入端都已关闭,这将导致read立即返回。父进程中管道的写端显式关闭,子进程中的写端由于文件描述符上设置的FD_CLOEXEC标志而隐式关闭,一旦execvp成功(在本例中总是这样),该标志将立即关闭文件描述符。,尽管这两段代码至少应该导致为管道文件描述符设置原子化的FD_CLOEXEC。有人能解释一下为什么read会使用pipe方法阻止上面的代码吗?
扩展互斥锁以覆盖v