Вернуть файловый дескриптор потока
#include <stdio.h>int fileno( FILE *stream );
libc
Функция fileno() возвращает файловый дескриптор для потока, определяемого stream. Данный файловый дескриптор может использоваться в вызовах ввода/вывода POSIX, которые требуют значение, полученное в результате вызова open().
Для связывания потока с файловым дескриптором нужно использовать fdopen().
![]() | В ЗОСРВ «Нейтрино» файловый дескриптор является также идентификатором соединения (coid), используемым в различных специфических функциях обмена сообщениями. |
Следующие символьные значения из <unistd.h>
определяют файловые дескрипторы, связанные с потоками языка C stdin, stdout и stderr streams:
0
) 1
) 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 системной библиотеки