I am trying to get the whole picture with file descriptors. Say I have process1 which initially has these file descriptors: _process1_|          || 0 stdin  || 1 stdout || 2 stderr ||__________|Then I close file descriptor 1:close(1);The file descriptor 1 translates(points) to the stdout FILE structure in the kernel's Open Files Table.With the code above the file descriptor 1 gets deleted from the process's table which becomes: _process1_|          || 0 stdin  || 2 stderr ||__________|But what happens in the kernel? Does the stdout FILE structure get deallocated? How is that possible if stdout is a special file (the monitor) and probably being used by other processes? What about FILE structures that are just normal files (.txt for example)? What if such a file is being used by an other process?
What happens when I close() a file descriptor?
linux;open files;file descriptors