J'essaie d'obtenir l'image complète avec des descripteurs de fichiers. Disons que j'ai process1 qui a initialement ces descripteurs de fichiers:
_process1_
| |
| 0 stdin |
| 1 stdout |
| 2 stderr |
|__________|
Ensuite, je ferme le descripteur de fichier 1:
close(1);
Le descripteur de fichier 1 se traduit (pointe) par la structure stdout FILE dans la table des fichiers ouverts du noyau .
Avec le code ci-dessus, le descripteur de fichier 1 est supprimé de la table du processus qui devient:
_process1_
| |
| 0 stdin |
| 2 stderr |
|__________|
Mais que se passe-t-il dans le noyau? La stdout
structure FILE est-elle désallouée? Comment est-ce possible si stdout est un fichier spécial (le moniteur) et probablement utilisé par d'autres processus? Qu'en est-il des structures FILE qui ne sont que des fichiers normaux (.txt par exemple)? Que faire si un tel fichier est utilisé par un autre processus?