This documentation is archived and is not being maintained.


Gets the file descriptor associated with a stream.

int _fileno( 
   FILE *stream 


Pointer to FILE structure.

Return Value

_fileno returns the file descriptor. There is no error return. The result is undefined if stream does not specify an open file.


The _fileno routine returns the file descriptor currently associated with stream. This routine is implemented both as a function and as a macro. For details on choosing either implementation, see Choosing Between Functions and Macros.


Function Required header Compatibility
_fileno <stdio.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


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

See Also

Stream I/O Routines | _fdopen | _filelength | fopen | freopen | Run-Time Routines and .NET Framework Equivalents