error

ERROR(3)        Ð ÑководÑÑво пÑогÑаммиÑÑа Linux        ERROR(3)



ÐÐЯ
       error, error_at_line, error_message_count, error_one_per_line,
       error_print_progname - ÑÑнкÑии вÑвода оÑибок glibc

ÐÐÐÐÐ
       #include <error.h>

       void error(int status, int errnum, const char *format, ...);

       void error_at_line(int status, int errnum, const char *filename,
                          unsigned int linenum, const char *format, ...);

       extern unsigned int error_message_count;

       extern int error_one_per_line;

       extern void (*error_print_progname) (void);

ÐÐÐСÐÐÐÐ
       ФÑнкÑÐ¸Ñ error() пÑедназнаÑена Ð´Ð»Ñ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð±
       оÑÐ¸Ð±ÐºÐ°Ñ Ñазного Ñода. Ðна ÑбÑаÑÑÐ²Ð°ÐµÑ stdout, а
       заÑем вÑÐ²Ð¾Ð´Ð¸Ñ Ð² stderr Ð¸Ð¼Ñ Ð¿ÑогÑаммÑ,
       двоеÑоÑие, пÑобел, ÑообÑение, задаваемое
       ÑÑÑокой format в ÑоÑмаÑе printf(3) и, еÑли знаÑение
       errnum не Ñавно нÑлÑ, вÑоÑое двоеÑоÑие и
       пÑобел, за коÑоÑÑми вÑводиÑÑÑ ÑÑÑока,
       возвÑаÑÐ°ÐµÐ¼Ð°Ñ Ð²Ñзовом strerror(errnum). ÐÑе
       аÑгÑменÑÑ, необÑодимÑе Ð´Ð»Ñ format, должнÑ
       ÑказÑваÑÑÑÑ Ð² ÑпиÑке аÑгÑменÑов поÑле format.
       ÐÑвод завеÑÑаеÑÑÑ Ñимволом новой ÑÑÑоки.

       ÐÐ¼Ñ Ð¿ÑогÑаммÑ, вÑводимое error(), пÑедÑÑавлÑеÑ
       Ñобой знаÑение глобалÑной пеÑеменной
       program_invocation_name(3). ÐеÑвонаÑалÑно, пеÑеменнаÑ
       program_invocation_name Ð¸Ð¼ÐµÐµÑ Ñо же знаÑение ÑÑо и
       argv[0] в ÑÑнкÑии main(). ÐнаÑение ÑÑой
       пеÑеменной Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°
       в вÑводе error().

       ÐÑли знаÑение status не Ñавно нÑлÑ, Ñо error()
       вÑзÑÐ²Ð°ÐµÑ exit(3) Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÑÑо
       знаÑение иÑполÑзÑеÑÑÑ ÐºÐ°Ðº код вÑÑода.

       ФÑнкÑÐ¸Ñ error_at_line() Ð´ÐµÐ»Ð°ÐµÑ Ñо же ÑÑо и error(), но
       Ð¸Ð¼ÐµÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе аÑгÑменÑÑ filename и linenum.
       ÐÑвод аналогиÑен error(), но поÑле имени
       пÑогÑÐ°Ð¼Ð¼Ñ Ð·Ð°Ð¿Ð¸ÑÑваеÑÑÑ: двоеÑоÑие, знаÑение
       filename, двоеÑоÑие и знаÑение linenum. ÐÑи вÑзове
       error_at_line() могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð·Ð½Ð°ÑениÑ
       пÑепÑоÑеÑÑоÑа __LINE__ и __FILE__, но можно
       иÑполÑзоваÑÑ Ð¸ дÑÑгие знаÑениÑ. ÐапÑимеÑ, ÑÑи
       аÑгÑменÑÑ Ð¼Ð¾Ð³ÑÑ ÑказÑваÑÑ Ð½Ð° меÑÑо во вÑодном
       Ñайле.

       ÐÑли знаÑение глобалÑной пеÑеменной
       error_one_per_line не Ñавно нÑлÑ, Ñо
       поÑледоваÑелÑноÑÑÑ Ð²Ñзовов error_at_line() Ñ Ñем
       же знаÑением filename и linenum вÑÐ²Ð¾Ð´Ð¸Ñ ÑолÑко
       одно ÑообÑение (пеÑвое).

       РглобалÑной пеÑеменной error_message_count
       подÑÑиÑÑваеÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑообÑений, коÑоÑÑе
       бÑли Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ error() и error_at_line().

       ÐÑли глобалÑной пеÑеменной error_print_progname
       назнаÑен адÑÐµÑ ÑÑнкÑии (Ñ.е., ÐµÑ Ð·Ð½Ð°Ñение не
       Ñавно NULL), Ñо вмеÑÑо показа в наÑале
       ÑообÑÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ двоеÑоÑиÑ
       вÑзÑваеÑÑÑ ÑÑа ÑÑнкÑиÑ. ФÑнкÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° вÑвеÑÑи
       нÑжнÑÑ ÑÑÑÐ¾ÐºÑ Ð² stderr.

ÐТРÐÐУТЫ
       ÐпиÑание ÑеÑминов данного Ñаздела ÑмоÑÑиÑе
       в attributes(7).

       ┌────────────────┬────────────────────────────────┬───────────────────────────────────┐
       │ÐнÑеÑÑÐµÐ¹Ñ   ÐÑÑибÑÑ                      ÐнаÑение                    │
       ├────────────────┼────────────────────────────────┼───────────────────────────────────┤
       │error()         │ ÐезвÑедноÑÑÑ Ð² ниÑÑÑ │ MT-Safe locale                    │
       ├────────────────┼────────────────────────────────┼───────────────────────────────────┤
       │error_at_line() │ ÐезвÑедноÑÑÑ Ð² ниÑÑÑ │ MT-Unsafe race:                   │
       │                │                                │ error_at_line/error_one_per_line  │
       │                │                                │ locale                            │
       └────────────────┴────────────────────────────────┴───────────────────────────────────┘
       ÐоÑÑÑпна внÑÑÑеннÑÑ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ error_one_per_line
       (Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ ÑинÑÑонизаÑии, но Ñак как ÑÑоÑ
       int иÑполÑзÑеÑÑÑ ÑолÑко один Ñаз, ÑÑо не
       пÑоблема) и, еÑли error_one_per_line ÑÑÑановлена в
       ненÑлевое знаÑение, Ñо ÑÑановÑÑÑÑ Ð´Ð¾ÑÑÑпнÑ
       Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÐµÐ· ÑинÑÑонизаÑии
       внÑÑÑенние ÑÑаÑиÑеÑкие пеÑеменнÑе
       (невидимÑе полÑзоваÑелÑ), коÑоÑÑе
       иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñледнего
       напеÑаÑанного имени Ñайла и номеÑа ÑÑÑоки;
       обновление не аÑомаÑно и пÑоиÑÑодиÑ
       пÑежде, Ñем оÑклÑÑиÑÑ Ð¾ÑменÑ, поÑÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ
       бÑÑÑ Ð¿ÑеÑвано ÑолÑко поÑле Ñого, как одна из
       ÑÑÐ¸Ñ Ð´Ð²ÑÑ Ð¿ÐµÑеменнÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°. ÐоÑле ÑÑого
       error_at_line() оÑÐµÐ½Ñ Ð¿Ð¾Ñожа на error().

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       ÐÑи ÑÑнкÑии и глобалÑнÑе пеÑеменнÑе ÑвлÑÑÑÑÑ
       ÑаÑÑиÑениÑми GNU, и они не должнÑ
       иÑполÑзоваÑÑÑÑ Ð² пеÑеноÑимÑÑ Ð¿ÑогÑаммаÑ.

СÐÐТРÐТРТÐÐÐÐ
       err(3), errno(3), exit(3), perror(3), program_invocation_name(3),
       strerror(3)



GNU                               2015-07-23                          ERROR(3)