文件描述符是针对进程还是针对操作系统?我基本上想知道的是,如果在ac程序中我打开一个文件并且该文件被分配了一个文件描述符值,比方说103,所以当我在其他一些c程序中打开带有文件描述符103的文件时,我指的是相同的文件或其他?
答案 0 :(得分:1)
每个进程都有自己的文件描述符表。它的处理器特定,如果你更改fd
它只对该进程有效,它不会影响系统中的其他进程。一旦进程终止,fd
将被丢弃。
如果我从打开该文件的过程中分叉一个新进程怎么办?
当前文件描述表,即fork系统调用之前的表将继承到子进程。
答案 1 :(得分:0)
文件描述符是通过open()创建的特定于进程的。但是您可以使用open()通过其他进程多次打开同一个文件。这样,每个进程都有自己的同一文件的文件描述符。文件描述符与其他资源一起通过fork到子进程。这意味着子进程不需要重新打开父已经打开的同一文件。