gpt4 book ai didi

linux - 如何将 fd 传递给另一个进程?

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:56 33 4
gpt4 key购买 nike

进程A中有一个fdprocess A fork 并调用 exec *。

域套接字、fifo、管道。

有没有一种简单的方法可以让我在新的进程 B 中获取和使用这个 fd

最佳答案

打开的文件描述符在使用 fork 时被继承。没有什么是你应该做的。

来自 fork manpage :

          The child inherits copies of the parent's set of open file
descriptors. Each file descriptor in the child refers to the same
open file description (see open(2)) as the corresponding file
descriptor in the parent. This means that the two file
descriptors share open file status flags, file offset, and signal-
driven I/O attributes (see the description of F_SETOWN and
F_SETSIG in fcntl(2)).

至于 exec,它仍然适用(如果您没有将 fd 标记为 close-on-exec)。来自 execve man page (所有 exec* 调用都只是这个系统调用的包装):

By default, file descriptors remain open across an execve(). File descriptors that are marked close-on-exec are closed; see the description of FD_CLOEXEC in fcntl(2).

关于linux - 如何将 fd 传递给另一个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728757/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com