Estoy tratando de obtener la imagen completa con descriptores de archivo. Digamos que tengo process1 que inicialmente tiene estos descriptores de archivo:
_process1_
| |
| 0 stdin |
| 1 stdout |
| 2 stderr |
|__________|
Luego cierro el descriptor de archivo 1:
close(1);
El descriptor de archivo 1 se traduce (puntos) a la estructura de archivo estándar en la tabla de archivos abiertos del núcleo .
Con el código anterior, el descriptor de archivo 1 se elimina de la tabla del proceso que se convierte en:
_process1_
| |
| 0 stdin |
| 2 stderr |
|__________|
¿Pero qué pasa en el núcleo? ¿La stdout
estructura FILE se desasigna? ¿Cómo es eso posible si stdout es un archivo especial (el monitor) y probablemente sea utilizado por otros procesos? ¿Qué pasa con las estructuras de ARCHIVO que son solo archivos normales (.txt, por ejemplo)? ¿Qué sucede si dicho archivo está siendo utilizado por otro proceso?