При работе с файлом используется поток данных. Поток данных служит в качестве буфера при записи/чтении файла. Непосредственные изменения в файл произойдут только на этапе закрытия, когда данные из потока записываются в файл.
открывает файл и связывает его с потоком данных, на который указывает указатель.
filename – указатель на строку символов, в которой хранится имя файла и путь к нему
mode – указатель на строку символов, в которой указывается режим открытия файла. Допустимые режимы:
“r” - открытие файла для чтения;
“w” - открытие файла для записи в начало файла;
“a” - открытие файла для чтения и записи. Запись производится только в конец файла.
Если указать только один из представленных выше режимов, то по умолчанию открывается в текстовом режиме. Можно явно указать, что файл открывается в текстовом режиме, тогда необходимо дописать символ «t», а при работе с бинарными – «b». Для открытия файла в режиме чтения и записи необходимо добавить символ «+». При возникновении ошибки во время открытия файла, функция fopen возвращает значение NULL.
int fclose(FILE *указатель)
прекращает работу с данным указателем, закрывает связанный с указателем поток и записывает в файл все данные, которые еще оставались в буфере. После этого к файлу можно обратиться только после его повторного открытия.
В случае успешного закрытия файла функция возвращает 0, в случае же ошибки - значение EOF.
int fcloseall(void)
закрывает все открытые файлы. Возвращает количество закрытых файлов или EOFпри возникновении ошибки.
int putc(intсимвол, FILE * указатель)
записывает 1 символ в текущую позицию указанного открытого файла.
int getc(FILE * указатель)
считывает 1 символ из текущей позиции указанного открытого файла.
int feof(FILE * указатель)
возвращает значение false, если конец файла не достигнут, и true, если достигнут конец файла.
int fputs(const char * строка, FILE * указатель)
записывает строку символов в текущую позицию в файле.
считывает строку символов из текущей позиции в файле. При работе с текстовым файлом функция считывает файл до первого символа конца строки или конца файла, с бинарным файлом – считывает установленное количество байт, которое должно быть указано на 1 больше, чем необходимо считать.
int *fprintf(FILE * указатель, const char * управляющая_строка)
записывает форматированные данные в файл.
управляющая_строка определяет строку форматирования аргументов, заданных своими адресами. Данная строка помимо текста содержит символы «%», после которых следует символ типа данных:
I или i - десятичное, восьмеричное или шестнадцатеричное целое число;
D или d - десятичное целое число;
U или u - десятичное целое число без знака;
E или e - действительное число с плавающей точкой;
s - строка символов;
c - один символ.
Если в строке присутствуют управляющие символы, то за ней идут в установленном порядке данные.
int *fscanf(FILE * указатель, const char * управляющая_строка)
считает форматированные данные из файла. Строка форматирования строится аналогично функции fprintf.
void rewind(FILE * указатель)
устанавливает указатель текущей позиции выделенного файла в начало файла.
int ferror(FILE * указатель)
определяет, произошла ли ошибка во время работы с файлом.
считывает из файла заданное число данных определенного размера. Функция возвращает число считанных элементов массива.
int fileno(FILE * указатель)
возвращает значение дескриптора указанного файла (дескриптор – логический номер файла для заданного потока).
long filelength(intдескриптор)
возвращает длину файла с соответствующим дескриптором в байтах.
int fseek(FILE * указатель, long intчисло_байт, intточка_отсчета);
устанавливает указатель в заданную позицию. точка_отсчета показывает откуда произвести переход указателя: SEEK_SET – с начала файла, SEEK_CUR – с текущей позиции, SEEK_END – с конца файла.