文件描述符和进程关系

时间:2015-09-28 07:06:58

标签: c file operating-system file-descriptor

文件描述符是针对进程还是针对操作系统?我基本上想知道的是,如果在ac程序中我打开一个文件并且该文件被分配了一个文件描述符值,比方说103,所以当我在其他一些c程序中打开带有文件描述符103的文件时,我指的是相同的文件或其他?

2 个答案:

答案 0 :(得分:1)

每个进程都有自己的文件描述符表。它的处理器特定,如果你更改fd它只对该进程有效,它不会影响系统中的其他进程。一旦进程终止,fd将被丢弃。

  

如果我从打开该文件的过程中分叉一个新进程怎么办?

当前文件描述表,即fork系统调用之前的表将继承到子进程。

答案 1 :(得分:0)

文件描述符是通过open()创建的特定于进程的。但是您可以使用open()通过其他进程多次打开同一个文件。这样,每个进程都有自己的同一文件的文件描述符。文件描述符与其他资源一起通过fork到子进程。这意味着子进程不需要重新打开父已经打开的同一文件。