_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_errlist
e _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 Raccomandazioni 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