.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" adapted glibc info page .\" .\" This should run as 'Guru Meditation' (amiga joke :) .\" The function is quite complex and deserves an example .\" .\" Polished, aeb, 2003-11-01 .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fmtmsg 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ fmtmsg \- выводит отформатированные сообщения об ошибках .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint fmtmsg(long \fP\fIclassification\fP\fB, const char *\fP\fIlabel\fP\fB,\fP \fB int \fP\fIseverity\fP\fB, const char *\fP\fItext\fP\fB,\fP \fB const char *\fP\fIaction\fP\fB, const char *\fP\fItag\fP\fB);\fP .fi .SH ОПИСАНИЕ Эта функция выводит сообщение, описываемое аргументами, на устройство(а), заданное в аргументе \fIclassification\fP. Для сообщений, записываемых в \fIstderr\fP, формат зависит от переменной окружения \fBMSGVERB\fP. .PP В аргументе \fIlabel\fP задаётся источник сообщения. Строка должна состоять из двух частей, разделённых двоеточиями; первая часть должна быть не более 10 символов, а вторая часть — не более 14. .PP В аргументе \fItext\fP описывается условие ошибки. .PP В аргументе \fIaction\fP описываются возможные шаги по исправлению ошибки. Если они выводятся, то начинаются с «TO FIX: ». .PP В аргументе \fItag\fP указывается ссылка на онлайн\-документацию, в которой можно найти дополнительную информацию. Он должен содержать значение \fIlabel\fP и уникальный идентификационный номер. .SS "Фиктивные аргументы" Каждый аргумент может иметь фиктивное значение. Для фиктивного значения классификации (classification) \fBMM_NULLMC\fP (0L) ничего не выводится, то есть ничего не печатается. Фиктивное значение важности (severity) \fBNO_SEV\fP (0) указывается, если важность не определена. Значения \fBMM_NULLLBL\fP, \fBMM_NULLTXT\fP, \fBMM_NULLACT\fP, \fBMM_NULLTAG\fP являются синонимами \fI((char\ *)\ 0)\fP — пустой строки, а \fBMM_NULLSEV\fP — синоним \fBNO_SEV\fP. .SS "Аргумент классификации" Аргумент \fIclassification\fP — это сочетание значений, описывающих 4 типа информации. .PP Первое значение определяет канал вывода. .TP 12n \fBMM_PRINT\fP Вывод в \fIstderr\fP. .TP \fBMM_CONSOLE\fP Вывод в системную консоль. .TP \fBMM_PRINT | MM_CONSOLE\fP Вывод в оба места. .PP Вторым значением описывается источник ошибки. .TP 12n \fBMM_HARD\fP Произошла аппаратная ошибка. .TP \fBMM_FIRM\fP Произошла ошибка в микропрограмме. .TP \fBMM_SOFT\fP Произошла ошибка в программном обеспечении. .PP В третьем значении кодируется выявитель проблемы. .TP 12n \fBMM_APPL\fP Обнаружено приложением. .TP \fBMM_UTIL\fP Обнаружено утилитой. .TP \fBMM_OPSYS\fP Обнаружено операционной системой. .PP В четвёртом значении показывается важность инцидента: .TP 12n \fBMM_RECOVER\fP Это исправимая ошибка. .TP \fBMM_NRECOV\fP Это неисправимая ошибка. .SS "Аргумент важности" В аргументе \fIseverity\fP можно указать одно из следующих значений: .TP 12n \fBMM_NOSEV\fP Важность не печатается. .TP \fBMM_HALT\fP Это значение печатается как ОСТАНОВ. .TP \fBMM_ERROR\fP Это значение печатается как ОШИБКА. .TP \fBMM_WARNING\fP Это значение печатается как ПРЕДУПРЕЖДЕНИЕ. .TP \fBMM_INFO\fP Это значение печатается как ИНФОРМАЦИОННОЕ. .PP Числовые значения от 0 до 4. Используя функцию \fBaddseverity\fP(3) или переменную окружения \fBSEV_LEVEL\fP вы можете добавить дополнительные уровни и строки для печати. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Функция может возвращать 4 значения: .TP 12n \fBMM_OK\fP Всё хорошо. .TP \fBMM_NOTOK\fP Всё плохо. .TP \fBMM_NOMSG\fP Ошибка записи в \fIstderr\fP. .TP \fBMM_NOCON\fP Ошибка записи в консоль. .SH ОКРУЖЕНИЕ The environment variable \fBMSGVERB\fP ("message verbosity") can be used to suppress parts of the output to \fIstderr\fP. (It does not influence output to the console.) When this variable is defined, is non\-NULL, and is a colon\-separated list of valid keywords, then only the parts of the message corresponding to these keywords is printed. Valid keywords are "label", "severity", "text", "action", and "tag". .PP Переменная окружения \fBSEV_LEVEL\fP может использоваться для ввода новых уровней важности. По умолчанию, доступно только пять уровней важности, описанных выше. Для любого другого числового значения \fBfmtmsg\fP() ничего не печатает. Если пользователь задал \fBSEV_LEVEL\fP в формате .PP .RS SEV_LEVEL=[описание[:описание[:...]]] .RE .PP в окружении процесса перед первым вызовом \fBfmtmsg\fP() и каждое описание имеет вид .PP .RS ключевое\-слово\-важности,уровень,печатаемая\-строка .RE .PP then \fBfmtmsg\fP() will also accept the indicated values for the level (in addition to the standard levels 0\[en]4), and use the indicated printstring when such a level occurs. .PP Часть «ключевое\-слово\-важности» не используется \fBfmtmsg\fP(), но указывается. Часть «уровень» — это строка, представляющая число. Числовое значение должно быть числом более 4. Это значение должно использоваться в аргументе важности \fBfmtmsg\fP() для выбора этого класса. Невозможно заменить любой из предопределённых классов. «Печатаемая\-строка» — строка, которая печатается в случае, когда сообщение этого класса обрабатывается \fBfmtmsg\fP(). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. Интерфейс Атрибут Значение T{ .na .nh \fBfmtmsg\fP() T} Безвредность в нитях T{ .na .nh glibc\ >=\ 2.16: MT\-Safe; glibc\ <\ 2.16: MT\-Unsafe T} .TE .sp 1 .PP До glibc 2.16 функция \fBfmtmsg\fP() использовала статическую незащищённую переменную, поэтому функцию нельзя использовать в нескольких нитях одновременно. .PP .\" Modified in commit 7724defcf8873116fe4efab256596861eef21a94 Начиная с glibc 2.16 функция \fBfmtmsg\fP() использует блокировку для защиты статической переменной, поэтому функцию можно использовать в нескольких нитях одновременно. .SH СТАНДАРТЫ .TP \fBfmtmsg\fP() .TQ \fBMSGVERB\fP POSIX.1\-2008. .SH ИСТОРИЯ .TP \fBfmtmsg\fP() System V. POSIX.1\-2001 and POSIX.1\-2008. glibc 2.1. .TP \fBMSGVERB\fP System V. POSIX.1\-2001 and POSIX.1\-2008. .TP \fBSEV_LEVEL\fP System V. .PP В справочных страницах System V и UnixWare указано, что эти функции были заменены на «pfmt() и addsev()» или «pfmt(), vpfmt(), lfmt() и vlfmt()», и будут впоследствии удалены. .SH ПРИМЕРЫ .\" SRC BEGIN (fmtmsg.c) .EX #include #include #include \& int main(void) { long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER; int err; \& err = fmtmsg(class, "util\-linux:mount", MM_ERROR, "unknown mount option", "See mount(8).", "util\-linux:mount:017"); switch (err) { case MM_OK: break; case MM_NOTOK: printf("Nothing printed\en"); break; case MM_NOMSG: printf("Nothing printed to stderr\en"); break; case MM_NOCON: printf("No console output\en"); break; default: printf("Unknown error from fmtmsg()\en"); } exit(EXIT_SUCCESS); } .EE .\" SRC END .PP Вывод должен быть таким: .PP .in +4n .EX util\-linux:mount: ERROR: unknown mount option TO FIX: Смотрите mount(8). util\-linux:mount:017 .EE .in .PP а после .PP .in +4n .EX MSGVERB=text:action; export MSGVERB .EE .in .PP вывод станет: .PP .in +4n .EX неизвестный параметр mount TO FIX: Смотрите mount(8). .EE .in .SH "СМ. ТАКЖЕ" \fBaddseverity\fP(3), \fBperror\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .