如何在OCaml中的进程之间共享文件描述符?

如何在OCaml中的进程之间共享文件描述符?,ocaml,Ocaml,我在OCaml代码中使用Jane Street async。我以如下标准方式启动子流程: Process.create ~prog ~args 我知道你的基本fork/exec是在Unixy机器上进行的。我希望在两个进程中都向同一个stderr写入数据。假设这是一个好主意(我意识到可能不是),如何将父级的stderr的文件描述符传递给子级?在标准Unix中,fork/exec文件描述符会自动传递,除非您采取措施(通常在fork和exec之间)来阻止它。因此,如果Process.create执行

我在OCaml代码中使用Jane Street async。我以如下标准方式启动子流程:

Process.create ~prog ~args

我知道你的基本fork/exec是在Unixy机器上进行的。我希望在两个进程中都向同一个stderr写入数据。假设这是一个好主意(我意识到可能不是),如何将父级的stderr的文件描述符传递给子级?

在标准Unix中,fork/exec文件描述符会自动传递,除非您采取措施(通常在fork和exec之间)来阻止它。因此,如果
Process.create
执行标准fork/exec,则无需执行任何操作(除了预先刷新缓冲区)

相反,如果
Process.create
关闭和/或重新分配文件描述符,您就无能为力了。在这种情况下,您可以自己更直接地调用fork和exec