FILE
является платформо-зависимым типом, очень вероятно, struct
, который в конечном счете содержит или указывает по крайней мере на:
- два смещения в открытый файл, один для чтения, один для записи;
- открыт ли файл для чтения, записи или для обоих;
- открыт ли файл для двоичного или текстового ввода-вывода;
- EOF / состояние ошибки потока;
- буфер;
- флаг, указывающий буферизацию блока или буферизацию строки;
char
или wchar_t
ориентация;
- последний символ, добавленный в поток
ungetc
.
Если я ничего не забываю, это все, к чему вы можете получить доступ с помощью функций stdio
, и они образуют единственный интерфейс для использования и проверки FILE
объектов. Поскольку FILE
непрозрачен, вы не должны знать , как хранит всю эту информацию.
POSIX дополнительно указывает, что вы можете получить базовый дескриптор файла с помощью функции / макроса fileno
.