我正在尝试使用文件描述符获取整个图片。假设我有process1,它最初具有这些文件描述符:
_process1_
| |
| 0 stdin |
| 1 stdout |
| 2 stderr |
|__________|
然后我关闭文件描述符1:
close(1);
文件描述符1转换(指向)内核的Open Files Table中的stdout FILE结构。
使用上面的代码,文件描述符1从进程表中删除,该表变为:
_process1_
| |
| 0 stdin |
| 2 stderr |
|__________|
但是内核中会发生什么呢?stdout
FILE结构是否被释放?如果stdout是一个特殊文件(监视器)并且可能被其他进程使用,那怎么可能?只是普通文件(例如.txt)的FILE结构怎么样?如果其他进程正在使用该文件怎么办?