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

Использование стандартного вывода диагностики


Стандартный вывод диагностики является особым файловым дескриптором, который по принятому соглашению зарезервирован для сообщений об ошибках и для предупреждений, что позволяет программе отделить обычный вывод от сообщений об ошибках. Например, использование стандартного вывода диагностики позволяет программе выводить сообщения об ошибках на терминал, в то время как стандартный вывод записывается в файл. Тем не менее при необходимости стандартный вывод диагностики может быть перенаправлен аналогично перенаправлению стандартного вывода. Например, часто используется такая форма команды запуска системы 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);

Тем не менее это достаточно грубый и громоздкий способ. Мы приведем лучшее решение в конце этой главы.



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