文件描述符是相对于进程还是相对于操作系统?我基本上想知道的是,如果在一个c程序中我打开一个文件,并且该文件被分配了一个文件描述符值,比如说103,那么当我在其他一些c程序中打开一个文件描述符为103的文件时,我会指的是相同的文件或其他文件?
最佳答案
每个进程都有自己的文件描述符表。它是特定于处理器的,如果您更改fd
,它将仅对该进程有效,不会影响系统中的其他进程。一旦进程终止,fd
将被丢弃。
What if I fork a new process from the process I opened that file?
当前文件描述表,即fork系统调用之前的表将被继承给子进程。
关于c - 文件描述符和进程关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817392/