相关疑难解决方法(0)

当我 close() 一个文件描述符时会发生什么?

我正在尝试使用文件描述符获取全貌。假设我有最初具有这些文件描述符的 process1:

 _process1_
|          |
| 0 stdin  |
| 1 stdout |
| 2 stderr |
|__________|
Run Code Online (Sandbox Code Playgroud)

然后我关闭文件描述符 1:

close(1);
Run Code Online (Sandbox Code Playgroud)

文件描述符 1 将(指向)转换为内核的Open Files Table 中的 stdout FILE 结构

使用上面的代码,文件描述符 1 从进程表中删除,变成:

 _process1_
|          |
| 0 stdin  |
| 2 stderr |
|__________|
Run Code Online (Sandbox Code Playgroud)

但是在内核中发生了什么?stdoutFILE 结构是否被解除分配?如果 stdout 是一个特殊文件(监视器)并且可能被其他进程使用,那怎么可能呢?FILE 结构只是普通文件(例如.txt)呢?如果其他进程正在使用这样的文件怎么办?

linux file-descriptors open-files

19
推荐指数
2
解决办法
2万
查看次数

AIX 不会停止创建随机 .nfsXXXX 文件

我试图删除一些文件和文件夹,但我不能,因为系统不断重新创建文件。

所有这些文件都命名为.nfsXXXX,其中XXXX是一些随机的 4 字符十六进制数。每当我删除其中一个文件时,它都会创建另一个名称不同但内容相同的文件。

这发生在几个不相关的目录中。什么可能导致这种情况,我该如何解决?

nfs aix

4
推荐指数
1
解决办法
3610
查看次数

标签 统计

aix ×1

file-descriptors ×1

linux ×1

nfs ×1

open-files ×1