Alguien mencionó que hay tres archivos diferentes que un proceso siempre abre. ¿Qué significa esto? ¿Qué archivos son?
Los archivos que se abren no son archivos en el disco. Son las secuencias (pseudo archivos), stdin (0), stdout (1) y stderr (2). Aquí está el extracto relevante del estándar POSIX :
Un archivo con almacenamiento en búfer asociado se denomina flujo y se declara como un puntero a un tipo definido de ARCHIVO. La función fopen () creará ciertos datos descriptivos para una secuencia y devolverá un puntero para designar la secuencia en todas las transacciones posteriores. Normalmente, hay tres secuencias abiertas con punteros constantes declarados en el encabezado y asociados con los archivos abiertos estándar.
Al inicio del programa, tres flujos deben estar predefinidos y no necesitan abrirse explícitamente: entrada estándar (para leer la entrada convencional), salida estándar (para escribir la salida convencional) y error estándar (para escribir la salida de diagnóstico). Cuando se abre, el flujo de error estándar no está completamente protegido; las secuencias de entrada y salida estándar están completamente almacenadas si y solo si se puede determinar que la secuencia no se refiere a un dispositivo interactivo.