_fileno
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _fileno.
Gets the file descriptor associated with a stream.
Syntax
int _fileno(
FILE *stream
);
Parameters
stream
Pointer to the 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. If stream is NULL
, _fileno
invokes the invalid parameter handler, as described in Parameter Validation. If execution is allowed to continue, this function returns -1 and sets errno
to EINVAL
.
For more information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Note
If stdout
or stderr
is not associated with an output stream (for example, in a Windows application without a console window), the file descriptor returned is -2. In previous versions, the file descriptor returned was -1. This change allows applications to distinguish this condition from an error.
Remarks
The _fileno
routine returns the file descriptor currently associated with stream
. This routine is implemented both as a function and as a macro. For information about choosing either implementation, see Choosing Between Functions and Macros.
Requirements
Function | Required header |
---|---|
_fileno |
<stdio.h> |
For more compatibility information, see Compatibility in the Introduction.
Example
// 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
.NET Framework Equivalent
System::IO::FileStream::Handle
See Also
Stream I/O
_fdopen, _wfdopen
_filelength, _filelengthi64
fopen, _wfopen
freopen, _wfreopen