Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Получает дескриптор файла, связанного с потоком.
Синтаксис
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