是一个文件描述符,它的进程是本地的,也是Unix上的全局文

时间:2017-02-18 18:51:43

标签: c unix file-descriptor

int fd = socket(//arguments);

这个描述符是否可以通过IPC传递给另一个进程并且仍然有效,或者它是创建它的进程的本地描述符?

2 个答案:

答案 0 :(得分:5)

文件描述符是进程的本地描述符。例如,每个进程都将在文件描述符0,1和2上具有标准输入,输出和错误。

It is possible to pass a file descriptor to another process over a UNIX domain socket.完成此操作后,每个进程都将拥有文件描述符的副本,可能位于不同的FD编号下。但它是一种混乱的API,并且很少使用。

答案 1 :(得分:3)

是的,文件描述符是进程的本地描述符。但是,当进程分叉子进程时,父进程和子进程具有相同的文件描述符表。这很好,因为它允许IO重定向,这是一个非常方便的技巧。