_fileno

Ottenere il descrittore di file associato al flusso.

Sintassi

int _fileno(
   FILE *stream
);

Parametri

stream
Puntatore alla struttura FILE.

Valore restituito

_fileno restituisce il descrittore del file. Non viene restituito alcun errore. Il risultato non è definito se stream non specifica un file aperto. Se stream è NULL, _fileno richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, questa funzione restituisce -1 e imposta errno su EINVAL.

Per altre informazioni su questi e altri codici di errore, vedere errno, _doserrno, _sys_errliste _sys_nerr.

Nota

Se stdout o stderr non è associata a un flusso di output (ad esempio, in un'applicazione di Windows senza una finestra della console), il descrittore del file restituito è -2. Nelle versioni precedenti, il descrittore del file restituito era -1. Questa modifica consente alle applicazioni di distinguere questa condizione da un errore.

Osservazioni:

La routine _fileno restituisce il descrittore del file attualmente associato a stream. Questa routine viene implementata come funzione e come macro. Per informazioni sulla scelta di una delle due implementazioni, vedere Consigli per la scelta tra funzioni e macro.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
_fileno <stdio.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// crt_fileno.c
// This program uses _fileno to obtain
// the file descriptor for some standard C streams.
//

#include <stdio.h>

int main( void )
{
   printf( "The file descriptor for stdin is %d\n", _fileno( stdin ) );
   printf( "The file descriptor for stdout is %d\n", _fileno( stdout ) );
   printf( "The file descriptor for stderr is %d\n", _fileno( stderr ) );
}
The file descriptor for stdin is 0
The file descriptor for stdout is 1
The file descriptor for stderr is 2

Vedi anche

I/O di flusso
_fdopen, _wfdopen
_filelength, _filelengthi64
fopen, _wfopen
freopen, _wfreopen