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



         

Описание - часть 2


Необязательный (optional) третий параметр mode, используемый только вместе с флагом Open_CREAT, также будет обсуждаться в следующем разделе – он связан с правами доступа к файлу. Следует обратить внимание на квадратные скобки в описании, которые обозначают, что параметр mode является необязательным.

Следующий фрагмент программы открывает файл junk для чтения и записи и проверяет, не возникает ли при этом ошибка. Этот последний момент особенно важен: имеет смысл устанавливать проверку ошибок во все программы, которые используют системные вызовы, поскольку каким бы простым не было приложение, иногда может произойти сбой. В этом примере используются библиотечные процедуры writeln для вывода сообщения и halt – для завершения процесса. Обе эти процедуры являются стандартными в любой системе.

uses linux;

const

  workfile = 'junk';    (* задать имя рабочего файла *)

var

  filedes:integer;

begin

  (* Открыть, используя постоянную Open_RDWR из модуля linux *)

  (* Файл открывается для чтения/записи *)

  filedes := fdopen (workfile, Open_RDWR);

  if filedes = -1 then

  begin

    writeln('Невозможно открыть файл ', workfile);

    halt(1);                (* выход по ошибке *)

  end;

  writeln('Файл ', workfile, ' успешно открыт, дескриптор равен ', filedes);

  (*

   * Остальная программа

   *)

  halt(0);            (* нормальный выход *)

end.

Обратите внимание, что используется halt с параметром 1 в случае ошибки, и 0 – в случае удачного завершения. Это соответствует соглашениям UNIX и является правильной практикой программирования. Как будет показано в следующих главах, после завершения программы можно получить передаваемый вызову halt аргумент (program’s exit status

– код завершения программы).




Содержание  Назад  Вперед