_fileno

获取与流关联的文件描述符。

语法

int _fileno(
   FILE *stream
);

参数

stream
指向 FILE 结构的指针。

返回值

_fileno 返回文件说明符。 无错误返回。 如果 stream 未指定打开的文件,则结果不确定。 如果流为 NULL_fileno 会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则此函数将返回 -1 并将 errno 设置为 EINVAL

有关这些和其他错误代码的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

注意

如果 stdoutstderr 都与输出流无关联(例如,在没有控制台窗口的 Windows 应用程序中),则返回的文件说明符为 -2。 在早期版本中,返回的文件说明符为 -1。 此更改使应用程序得以将此情况与错误区分开来。

备注

_fileno 例程返回当前与 stream 相关联的文件说明符。 此例程作为函数和宏实现。 若要了解如何选择任一实现,请参阅关于选择函数和宏的建议

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

函数 必需的标头
_fileno <stdio.h>

有关兼容性的详细信息,请参阅 兼容性

示例

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

另请参阅

流 I/O
_fdopen_wfdopen
_filelength_filelengthi64
fopen_wfopen
freopen_wfreopen