_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.
Требования
Function | Обязательный заголовок |
---|---|
_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
См. также
Потоковый ввод-вывод
_fdopen
, _wfdopen
_filelength
, _filelengthi64
fopen
, _wfopen
freopen
, _wfreopen