Вывод сообщений об ошибках при помощи функции 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. Это обеспечит совместимость с большинством команд и программ, применяющих для диагностики стандартный вывод диагностики.