Внешние идентификаторы, начинающиеся со знака подчеркивания, а также все другие идентификаторы, начинающиеся с двух знаков подчеркивания или с подчеркивания и заглавной буквы, зарезервированы для использования в библиотеке.
B1. Ввод-вывод: ‹stdio.h›
Определенные в
Поток соединяется с файлом или устройством посредством его
Когда программа начинает работу, уже открыты три потока: stdin, stdout и stderr.
B1.1. Операции над файлами
Ниже перечислены функции, оперирующие с файлами. Тип size_t - беззнаковый целочисленный тип, используемый для описания результата оператора sizeof.
FILE *fopen(const char *filename, const char *mode);
fopen открывает файл с заданным именем и возвращает поток или NULL, если попытка открытия оказалась неудачной. Режим
"r" | текстовый файл открывается для чтения (от |
"w" | текстовый файл создается для записи; старое содержимое (если оно было) выбрасывается (от |
"а" | текстовый файл открывается или создается для записи в конец файла (от |
"r+" | текстовый файл открывается для исправления (т. е. для чтения и для записи); |
"w+" | текстовый файл создается для исправления; старое содержимое (если оно было) выбрасывается; |
"a+" | текстовый файл открывается или создается для исправления уже существующей информации и добавления новой в конец файла. |
Режим "исправления" позволяет читать и писать в один и тот же файл; при переходах от операций чтения к операциям записи и обратно должны осуществляться обращения к fflush или к функции позиционирования файла. Если указатель режима дополнить буквой
FILE *freopen(const char *filename, const char *mode, FILE *stream);
freopen открывает файл с указанным режимом и связывает его с потоком
int fflush(FILE *stream);
Применяемая к потоку вывода функция fflush производит дозапись всех оставшихся в буфере (еще не записанных) данных, для потока ввода эта функция не определена. Возвращает EOF в случае возникшей при записи ошибки или нуль в противном случае. Обращение вида
int fclose(FILE *stream);
fсlose производит дозапись еще не записанных буферизованных данных, сбрасывает несчитанный буферизованный ввод, освобождает все автоматически запрошенные буфера, после чего закрывает поток. Возвращает EOF в случае ошибки и нуль в противном случае.
int remove(const char *filename);