_fileno
获取与流关联的文件描述符。
语法
int _fileno(
FILE *stream
);
参数
stream
指向 FILE
结构的指针。
返回值
_fileno
返回文件说明符。 无错误返回。 如果 stream
未指定打开的文件,则结果不确定。 如果流为 NULL
,_fileno
会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则此函数将返回 -1 并将 errno
设置为 EINVAL
。
有关这些和其他错误代码的详细信息,请参阅 errno
、_doserrno
、_sys_errlist
和 _sys_nerr
。
注意
如果 stdout
或 stderr
都与输出流无关联(例如,在没有控制台窗口的 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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈