fileno()

Вернуть файловый дескриптор потока

Прототип:

#include <stdio.h>
int fileno( FILE *stream );

Аргументы:

stream
Поток, чей дескриптор нужно вернуть.

Библиотека:

libc

Описание:

Функция fileno() возвращает файловый дескриптор для потока, определяемого stream. Данный файловый дескриптор может использоваться в вызовах ввода/вывода POSIX, которые требуют значение, полученное в результате вызова open().

Для связывания потока с файловым дескриптором нужно использовать fdopen().


Note: В ЗОСРВ «Нейтрино» файловый дескриптор является также идентификатором соединения (coid), используемым в различных специфических функциях обмена сообщениями.

Следующие символьные значения из <unistd.h> определяют файловые дескрипторы, связанные с потоками языка C stdin, stdout и stderr streams:

STDIN_FILENO
Значение стандартного потока ввода, stdin (0)
STDOUT_FILENO
Значение стандартного потока вывода, stdout (1)
STDERR_FILENO
Значение стандартного потока ошибок, stderr (2)

Возвращаемое значение:

Файловый дескриптор или -1 в случае ошибки (значение errno устанавливается).

Примеры:

#include <stdlib.h>
#include <stdio.h>
int main( void )
{
FILE *stream;
stream = fopen( "file", "r" );
if ( stream != NULL )
{
printf( "File number is %d.\n", fileno( stream ) );
fclose( stream );
return (EXIT_SUCCESS);
}
return (EXIT_FAILURE);
}

Код генерирует следующий вывод:

$ ./a.out File number is 7.

Классификация:

POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

errno, fdopen(), fopen(), open()




Предыдущий раздел: Описание API системной библиотеки