_fileno
Obtener el descriptor de archivo asociado a un flujo
Sintaxis
int _fileno(
FILE *stream
);
Parámetros
stream
Puntero a la estructura de FILE
.
Valor devuelto
_fileno
devuelve el descriptor de archivo. No se devuelve ningún error. El resultado es indefinido si stream
no especifica un archivo abierto. Si stream es NULL
, _fileno
invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, esta función devuelve -1 y establece errno
en EINVAL
.
Para obtener más información sobre estos y otros códigos de error, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Nota:
Si stdout
o stderr
no están asociados a un flujo de salida (por ejemplo, en una aplicación Windows sin ventana de consola), el descriptor de archivo que se devuelve es -2. En versiones anteriores, el descriptor de archivo devuelto era -1. Este cambio permite que las aplicaciones distingan esta condición de un error.
Comentarios
La rutina _fileno
devuelve el descriptor de archivo asociado actualmente a stream
. Esta rutina se implementa como función y como macro. Para obtener información sobre cómo elegir cualquiera de las implementaciones, consulte Recomendaciones para elegir entre funciones y macros.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Función | Encabezado necesario |
---|---|
_fileno |
<stdio.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
Vea también
E/S de secuencia
_fdopen
, _wfdopen
_filelength
, _filelengthi64
fopen
, _wfopen
freopen
, _wfreopen