C 每个分叉过程的不同输入/输出流
我有一些代码,其中几个进程是通过分叉创建的。每个进程都有popen()函数来执行一些shell命令。问题是所有这些进程都使用相同的输入/输出流。这会导致由于进程同时写入一个流而发生冲突的情况 有没有办法解决这个问题,让每个分叉的进程都使用自己的流?C 每个分叉过程的不同输入/输出流,c,fork,popen,stdio,C,Fork,Popen,Stdio,我有一些代码,其中几个进程是通过分叉创建的。每个进程都有popen()函数来执行一些shell命令。问题是所有这些进程都使用相同的输入/输出流。这会导致由于进程同时写入一个流而发生冲突的情况 有没有办法解决这个问题,让每个分叉的进程都使用自己的流? 在我的情况下,不允许对fork进行任何操作。您必须在fork之前或(如果可能)在fork之后的子进程中关闭并重新打开stdin和stdout。您必须在fork之前或(如果可能)在fork之后的子进程中关闭并重新打开stdin和stdout。调用for
在我的情况下,不允许对fork进行任何操作。您必须在fork之前或(如果可能)在fork之后的子进程中关闭并重新打开stdin和stdout。您必须在fork之前或(如果可能)在fork之后的子进程中关闭并重新打开stdin和stdout。调用fork()时,您从父进程继承文件描述符(stdin、stdout等)。当您打开它时,它将获取共享的stdin/stdout并将其导入打开的进程。听起来您希望在分叉后关闭所有打开的文件描述符,然后重新打开它们 调用fork()时,从父进程继承文件描述符(stdin、stdout等)。当您打开它时,它将获取共享的stdin/stdout并将其导入打开的进程。听起来您希望在分叉后关闭所有打开的文件描述符,然后重新打开它们 请出示一些代码,它不清楚你的意思。请出示一些代码,它不清楚你的意思。