Нет.
Файловые дескрипторы не являются частью стандарта C. В стандарте C отсутствует обязанность системы реализовывать стандартную библиотеку ввода-вывода с использованием файловых дескрипторов.Следовательно, нет способа получить дескриптор файла из файлового потока с использованием стандартного C;Концепция файлового дескриптора просто не является частью стандарта C.Вот почему fileno()
не является стандартной функцией C.
Стандарт C11 §7.21 Ввод / вывод <stdio.h>
не определяет никаких функций, использующих дескрипторы файлов.
Если fileno()
не является стандартной функцией, какое значение возвращает функция open()
?
Функция open()
также не является частью стандартной C;ни одна из функций, использующих файловые дескрипторы, не является частью стандарта C. Стандарт POSIX предоставляет функции, использующие файловые дескрипторы - их множество, включая open()
и fileno()
.Большинство систем предоставляют функции расширения, которые не определены в POSIX, но используют файловые дескрипторы.