Compartir a través de


_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