Дописывание данных в конец файла
Как должно быть ясно из раздела 2.1.10, для дописывания данных в конец файла может использоваться следующий код:
(* Поиск конца файла *)
fdseek(filedes, 0, SEEK_END);
fdwrite(filedes, appbuf, BUFSIZE);
Тем не менее более изящный способ состоит в использовании одного из дополнительных флагов вызова fdopen, Open_APPEND. Если установлен этот флаг, то перед каждой записью указатель будет устанавливаться в конец файла. Это может быть полезно, если нужно лишь дополнить файл, застраховавшись от случайной перезаписи данных в начале файла.
Можно использовать флаг Open_APPEND следующим образом:
filedes := fdopen('yetanother', Open_WRONLY or Open_APPEND);
Каждый последующий вызов fdwrite будет дописывать данные в конец файла. Например:
fdwrite(filedes, appbuf, BUFSIZE);
Упражнение 2.14. Напишите процедуру fileopen, имеющую два аргумента: первый – строку, содержащую имя файла, и второй – строку, которая может иметь одно из следующих значений:
r – открыть файл только для чтения;
w – открыть файл только для записи;
rw – открыть файл для чтения и записи;
а – открыть файл для дописывания.
процедура fileopen должна возвращать дескриптор файла или код ошибки -1.