Поделиться через


_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