【发布时间】:2017-07-31 11:21:42
【问题描述】:
在 Linux API 中,程序会继承在其调用者中打开的文件描述符的副本。
程序如何访问继承的文件描述符?哪些函数用于此目的?
程序的调用者可以是
C 中的另一个程序,或
-
一个 bash 外壳。在这种情况下,程序如何访问在调用它的 shell 中打开的文件描述符?来自 Bash Manual,在 bash shell 中,
当要执行除内置函数或 shell 函数之外的简单命令时,它会在由以下内容组成的单独执行环境中调用。除非另有说明,否则这些值是从 shell 继承的。
- shell 的打开文件,以及通过重定向到命令指定的任何修改和添加
谢谢。
【问题讨论】:
-
定义“它的调用者”。对我来说,这听起来太模糊了。
-
你能详细说明一下吗?你是在说
fork()吗? -
它的调用者可以是另一个 C 程序或 bash shell。
-
您必须在自己的代码中找到答案。例如,只需传递
argv[]中的数字即可。 -
@NikosC。
fork()创建当前进程的子进程。那么子进程如何访问继承自当前进程的文件描述符