Управление потоками
fopen
возвращает адрес объекта типа FILE
. Этот адрес используется в качестве аргумента stream
в нескольких библиотечных функциях для выполнения различных операций с открытым файлом. Для потока байтов все входные данные происходят так, как если каждый символ считывается путем вызова fgetc
. Все выходные данные происходят так, как если каждый символ записывается путем вызова fputc
. Для широкого потока все входные данные происходят, как если бы каждый символ считывается путем вызова fgetwc
. Все выходные данные происходят так, как если каждый символ записывается путем вызова fputwc
.
Вы можете закрыть файл, вызвав fclose
адрес, после которого FILE
адрес объекта является недопустимым.
Объект FILE
сохраняет состояние потока, в том числе:
Индикатор ошибки, установленный в ненулевое значение функцией, обнаружившей ошибку чтения или записи.
Индикатор конца файла, установленный в ненулевое значение функцией, встретившей конец файла при чтении.
Индикатор позиции файла определяет следующий байт в потоке для чтения или записи, если файл поддерживает запросы размещения.
Состояние потока сообщает, доступен ли поток для чтения и (или) записи, а также является ли поток непривязанным, байтовым или расширенным символьным.
Состояние преобразования запоминает состояние любого частично собранного или созданного обобщенного многобайтового символа и любого состояния shift для последовательности байтов в файле).
Буфер файла задает адрес и размер объекта массива. Функции библиотеки могут использовать его для повышения производительности операций чтения и записи в поток.
Не изменяйте какое-либо значение, хранящееся в объекте FILE
или в буфере файлов, которое вы указываете для использования с этим объектом. Невозможно скопировать FILE
объект и переносить адрес копии в качестве stream
аргумента в функцию библиотеки.