Quali tre file sono sempre aperti da un processo?


7

Qualcuno ha detto che ci sono tre diversi file che un processo apre sempre. Cosa significa questo? Quali file sono?

Risposte:


10

I file aperti non sono file sul disco. Sono gli stream (pseudo file), stdin (0), stdout (1) e stderr (2). Ecco l'estratto pertinente dello standard POSIX :

Un file con buffering associato viene chiamato stream e viene dichiarato come puntatore a un FILE di tipo definito. La funzione fopen () crea alcuni dati descrittivi per un flusso e restituisce un puntatore per designare il flusso in tutte le ulteriori transazioni. Normalmente, ci sono tre flussi aperti con puntatori costanti dichiarati nell'intestazione e associati ai file aperti standard.

All'avvio del programma, tre flussi devono essere predefiniti e non devono essere aperti in modo esplicito: input standard (per leggere input convenzionali), output standard (per scrivere output convenzionali) ed errore standard (per scrivere output diagnostici). Se aperto, il flusso di errori standard non è completamente bufferizzato; i flussi di input standard e output standard sono completamente bufferizzati se e solo se il flusso può essere determinato in modo da non fare riferimento a un dispositivo interattivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.