Системное программирование в UNIX средствами Free Pascal

Дописывание данных в конец файла


Как должно быть ясно из раздела 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.



Содержание раздела