Partager via


_fileno

Obtient le descripteur de fichier associé à un flux.

Syntaxe

int _fileno(
   FILE *stream
);

Paramètres

stream
Pointeur désignant la structure FILE.

Valeur retournée

_fileno retourne le descripteur de fichier. Il n’existe aucun retour d’erreur. Le résultat n’est pas défini si stream aucun fichier ouvert n’est spécifié. Si le flux est NULL, _fileno appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, cette fonction retourne -1 et affecte à errno la valeur EINVAL.

Pour plus d’informations sur ces codes d’erreur et d’autres codes d’erreur, consultez errno, _doserrno, _sys_errlistet _sys_nerr.

Remarque

Si stdout ou stderr n’est pas associé à un flux de sortie (par exemple, dans une application Windows sans fenêtre de console), le descripteur de fichier retourné est -2. Dans les versions précédentes, le descripteur de fichier retourné était -1. Cette modification permet aux applications de distinguer cette condition d’une erreur.

Notes

La routine _fileno retourne le descripteur de fichier associé à stream. Cette routine est implémentée en tant que fonction et que macro. Pour plus d’informations sur le choix de l’une ou l’autre implémentation, consultez Recommandations pour choisir entre les fonctions et les macros.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Fonction En-tête requis
_fileno <stdio.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// 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

Voir aussi

E/S de flux
_fdopen, _wfdopen
_filelength, _filelengthi64
fopen, _wfopen
freopen, _wfreopen