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



Вывод сообщений об ошибках при помощи функции writeln


Функция printf может использоваться для вывода диагностических ошибок. К сожалению, она осуществляет запись в стандартный вывод, а не в стандартный вывод диагностики. Тем не менее можно использовать для этого функцию writeln. Следующий фрагмент программы показывает, как можно это сделать:

uses stdio;    (* Для определения stderr *)

.

.

writeln (stderr, 'Ошибка номер ', linuxerror);

Отличие между использованием writeln и вызовом printf заключается в параметре stderr, являющемся указателем на текстовый файл, автоматически связанный с потоком вывода стандартной диагностики.

Следующая процедура расширяет возможности использования функции writeln в более общей процедуре вывода сообщения об ошибке:

(* Функция notfound - вывести сообщение об ошибке и выйти *)

uses linux;

function notfound(progname, filename: string):integer;

begin

  writeln(stderr, progname, ': файл ', filename, ' не найден');

  halt(1);

end;

В последующих примерах для вывода сообщений об ошибках будет использована функция writeln, а не printf. Это обеспечит совместимость с большинством команд и программ, применяющих для диагностики стандартный вывод диагностики.




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