Использование стандартного вывода диагностики
Стандартный вывод диагностики является особым файловым дескриптором, который по принятому соглашению зарезервирован для сообщений об ошибках и для предупреждений, что позволяет программе отделить обычный вывод от сообщений об ошибках. Например, использование стандартного вывода диагностики позволяет программе выводить сообщения об ошибках на терминал, в то время как стандартный вывод записывается в файл. Тем не менее при необходимости стандартный вывод диагностики может быть перенаправлен аналогично перенаправлению стандартного вывода. Например, часто используется такая форма команды запуска системы make:
$ make > log.out 2>log.err
В результате все сообщения об ошибках работы make направляются в файл log.err, а стандартный вывод направляется в файл log.out.
Можно выводить сообщения в стандартный вывод диагностики при помощи системного вызова write со значением дескриптора файла равным 2:
var
msg:array [0..5] of char='boob'#$a;
.
.
fdwrite(2, msg, 5);
Тем не менее это достаточно грубый и громоздкий способ. Мы приведем лучшее решение в конце этой главы.