fmtmsg(3) - wariua/manpages-ko GitHub Wiki

NAME

fmtmsg - ํ˜•์‹ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅํ•˜๊ธฐ

SYNOPSIS

#include <fmtmsg.h>

int fmtmsg(long classification, const char *label,
           int severity, const char *text,
           const char *action, const char *tag);

DESCRIPTION

์ด ํ•จ์ˆ˜๋Š” ๊ทธ ์ธ์ž๋“ค์ด ๊ธฐ์ˆ ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ classification ์ธ์ž๋กœ ๋‚˜ํƒ€๋‚ธ ์žฅ์น˜(๋“ค)์— ํ‘œ์‹œํ•œ๋‹ค. stderr๋กœ ์ฐ๋Š” ๋ฉ”์‹œ์ง€๋Š” MSGVERB ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ํ˜•์‹์ด ๋‹ฌ๋ผ์ง„๋‹ค.

label ์ธ์ž๋Š” ๋ฉ”์‹œ์ง€์˜ ์›์ฒœ์„ ์‹๋ณ„ํ•ด ์ค€๋‹ค. ๋ฌธ์ž์—ด์€ ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ 10๊ธ€์ž๋ฅผ ๋„˜์„ ์ˆ˜ ์—†๊ณ  ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ 14๊ธ€์ž๋ฅผ ๋„˜์„ ์ˆ˜ ์—†๋‹ค.

text ์ธ์ž๋Š” ์˜ค๋ฅ˜์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.

action ์ธ์ž๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์น˜๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค. ์ด๋ฅผ ์ฐ๋Š” ๊ฒฝ์šฐ ์•ž์— "TO FIX: "๊ฐ€ ๋ถ™๋Š”๋‹ค.

tag ์ธ์ž๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์˜จ๋ผ์ธ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ฐธ์กฐ์ด๋‹ค. label์˜ ๊ฐ’๊ณผ ๊ณ ์œ ํ•œ ์‹๋ณ„ ๋ฒˆํ˜ธ๋ฅผ ๋‹ด์•„์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

๋”๋ฏธ ์ธ์ž

์ธ์ž ๊ฐ๊ฐ์ด ๋”๋ฏธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”๋ฏธ ๋ถ„๋ฅ˜ ๊ฐ’์ธ MM_NULLMC(0L)๋Š” ์–ด๋–ค ์ถœ๋ ฅ๋„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๊ณ , ๊ทธ๋ž˜์„œ ์•„๋ฌด ๊ฒƒ๋„ ์ฐํžˆ์ง€ ์•Š๋Š”๋‹ค. ๋”๋ฏธ ์‹ฌ๊ฐ๋„ ๊ฐ’์ธ NO_SEV(0)๋Š” ์–ด๋–ค ์‹ฌ๊ฐ๋„๋„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ด๋‹ค. MM_NULLLBL, MM_NULLTXT, MM_NULLACT, MM_NULLTAG๋Š” ((char *) 0), ์ฆ‰ ๋นˆ ๋ฌธ์ž์—ด๊ณผ ๋™์˜์–ด์ด๋ฉฐ MM_NULLSEV๋Š” NO_SEV์™€ ๋™์˜์–ด์ด๋‹ค.

classification ์ธ์ž

classification ์ธ์ž๋Š” 4๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฐ’๋“ค์„ ํ•ฉ์นœ ๊ฒƒ์ด๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ ์ถœ๋ ฅ ์ฑ„๋„์„ ๊ทœ์ •ํ•œ๋‹ค.

MM_PRINT
stderr๋กœ ์ถœ๋ ฅ.
MM_CONSOLE
์‹œ์Šคํ…œ ์ฝ˜์†”๋กœ ์ถœ๋ ฅ.
MM_PRINT | MM_CONSOLE
๋‘˜ ๋ชจ๋‘๋กœ ์ถœ๋ ฅ.

๋‘ ๋ฒˆ์งธ ๊ฐ’์€ ์˜ค๋ฅ˜์˜ ์›์ฒœ์ด๋‹ค.

MM_HARD
ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ.
MM_FIRM
ํŽŒ์›จ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ.
MM_SOFT
์†Œํ”„ํŠธ์›จ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ.

์„ธ ๋ฒˆ์งธ ๊ฐ’์€ ์–ด๋””์„œ ๋ฌธ์ œ๋ฅผ ํƒ์ง€ํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•œ๋‹ค.

MM_APPL
์‘์šฉ์ด ํƒ์ง€ํ–ˆ์Œ.
MM_UTIL
์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํƒ์ง€ํ–ˆ์Œ.
MM_OPSYS
์šด์˜ ์ฒด์ œ๊ฐ€ ํƒ์ง€ํ–ˆ์Œ.

๋„ค ๋ฒˆ์งธ ๊ฐ’์€ ์‚ฌ๊ฑด์˜ ์‹ฌ๊ฐ๋„๋ฅผ ๋ณด์—ฌ ์ค€๋‹ค.

MM_RECOVER
๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜์ž„.
MM_NRECOV
๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜์ž„.

severity ์ธ์ž

severity ์ธ์ž๋Š” ๋‹ค์Œ ๊ฐ’๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

MM_NOSEV
์‹ฌ๊ฐ๋„๋ฅผ ์ฐ์ง€ ์•Š์Œ.
MM_HALT
์ด ๊ฐ’์€ `HALT`๋ผ๊ณ  ์ฐ์Œ.
MM_ERROR
์ด ๊ฐ’์€ `ERROR`๋ผ๊ณ  ์ฐ์Œ.
MM_WARNING
์ด ๊ฐ’์€ `WARNING`์ด๋ผ๊ณ  ์ฐ์Œ.
MM_INFO
์ด ๊ฐ’์€ `INFO`๋ผ๊ณ  ์ฐ์Œ.

์ˆซ์ž ๊ฐ’์œผ๋กœ๋Š” 0์—์„œ 4๊นŒ์ง€์ด๋‹ค. addseverity(3)๋‚˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ SEV_LEVEL์„ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜์ค€๊ณผ ์ฐ์„ ๋ฌธ์ž์—ด์„ ๋” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

RETURN VALUE

ํ•จ์ˆ˜๊ฐ€ 4๊ฐ€์ง€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

MM_OK
๋ชจ๋“  ๊ฒŒ ์ž˜ ๋Œ์•„๊ฐ”์Œ.
MM_NOTOK
์™„์ „ํ•œ ์‹คํŒจ.
MM_NOMSG
stderr์— ์“ฐ๋Š” ์ค‘์— ์˜ค๋ฅ˜.
MM_NOCON
์ฝ˜์†”์— ์“ฐ๋Š” ์ค‘ ์˜ค๋ฅ˜.

ENVIRONMENT

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ MSGVERB("message verbosity")๋ฅผ ์ด์šฉํ•ด stderr๋กœ์˜ ์ถœ๋ ฅ ์ผ๋ถ€๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋‹ค. (์ฝ˜์†”๋กœ์˜ ์ถœ๋ ฅ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.) ์ด ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๊ณ , NULL์ด ์•„๋‹ˆ๊ณ , ์œ ํšจํ•œ ํ‚ค์›Œ๋“œ๋“ค์˜ ์ฝœ๋ก  ๊ตฌ๋ถ„ ๋ชฉ๋ก์ด๋ฉด ๋ฉ”์‹œ์ง€์—์„œ ๊ทธ ํ‚ค์›Œ๋“œ๋“ค์— ๋Œ€์‘ํ•˜๋Š” ๋ถ€๋ถ„๋“ค๋งŒ ์ฐํžŒ๋‹ค. ์œ ํšจํ•œ ํ‚ค์›Œ๋“œ๋Š” "label", "severity", "text", "action", "tag"์ด๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ SEV_LEVEL์„ ์ด์šฉํ•ด ์ƒˆ๋กœ์šด ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€์„ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์œ„์—์„œ ๊ธฐ์ˆ ํ•œ ๋‹ค์„ฏ ๊ฐ€์ง€ ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ˆซ์ž ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด fmtmsg()๊ฐ€ ์•„๋ฌด ๊ฒƒ๋„ ์ฐ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ๋ฒˆ์งธ fmtmsg() ํ˜ธ์ถœ ์ „์— ํ”„๋กœ์„ธ์Šค์˜ ํ™˜๊ฒฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ SEV_LEVEL์„ ๋„ฃ์–ด ์ฃผ๋ฉด fmtmsg()๊ฐ€ (ํ‘œ์ค€ ์ˆ˜์ค€ 0~4์— ๋”ํ•ด์„œ) ์ง€์ •ํ•œ ๊ฐ’๋“ค๋„ ๋ฐ›์•„๋“ค์ด๊ฒŒ ๋˜์–ด ๊ทธ ์ˆ˜์ค€์˜ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ง€์ •ํ•œ ์ถœ๋ ฅ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

SEV_LEVEL=[description[:description[:...]]]

description ๊ฐ๊ฐ์€ ๋‹ค์Œ ํ˜•์‹์ด๋‹ค.

severity-keyword,level,printstring

severity-keyword ๋ถ€๋ถ„์€ fmtmsg()์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๋ž˜๋„ ์žˆ์–ด์•ผ ํ•œ๋‹ค. level ๋ถ€๋ถ„์€ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๊ทธ ์ˆซ์ž ๊ฐ’์€ 4๋ณด๋‹ค ์ปค์•ผ ํ•œ๋‹ค. ์ด ์ˆ˜์ค€์„ ์„ ํƒํ•˜๋ ค๋ฉด fmtmsg()์˜ severity ์ธ์ž๋กœ ์ด ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฏธ ์ •์˜๋œ ์ˆ˜์ค€๋“ค์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. printstring์€ fmtmsg()์—์„œ ์ด ์ˆ˜์ค€์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ฐํžˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค.

VERSIONS

glibc ๋ฒ„์ „ 2.1๋ถ€ํ„ฐ fmtmsg()๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ATTRIBUTES

์ด ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์€ attributes(7)๋ฅผ ๋ณด๋ผ.

์ธํ„ฐํŽ˜์ด์Šค ์†์„ฑ ๊ฐ’
fmtmsg() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ glibc >= 2.16: MT-Safe
glibc < 2.16: MT-Unsafe

glibc 2.16 ์ „์—์„œ fmtmsg() ํ•จ์ˆ˜๋Š” ๋ณดํ˜ธ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ •์  ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ทธ๋ž˜์„œ ์Šค๋ ˆ๋“œ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค.

glibc 2.16๋ถ€ํ„ฐ fmtmsg() ํ•จ์ˆ˜๋Š” ๋ฝ์„ ์‚ฌ์šฉํ•ด ๊ทธ ์ •์  ๋ณ€์ˆ˜๋ฅผ ๋ณดํ˜ธํ•˜๋ฉฐ, ๊ทธ๋ž˜์„œ ์Šค๋ ˆ๋“œ ์•ˆ์ „ํ•˜๋‹ค.

CONFORMING TO

ํ•จ์ˆ˜ fmtmsg() ๋ฐ addseverity(3), ๊ทธ๋ฆฌ๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜ MSGVERB ๋ฐ SEV_LEVEL์€ ์‹œ์Šคํ…œ V์—์„œ ์˜จ ๊ฒƒ์ด๋‹ค.

ํ•จ์ˆ˜ fmtmsg()์™€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ MSGVERB๋ฅผ POSIX.1-2001 ๋ฐ POSIX.1-2008์—์„œ ๊ธฐ์ˆ ํ•˜๊ณ  ์žˆ๋‹ค.

NOTES

์‹œ์Šคํ…œ V ๋ฐ UnixWare ๋งจ ํŽ˜์ด์ง€์—์„œ๋Š” ์ด ํ•จ์ˆ˜๋“ค์ด "pfmt ๋ฐ addsev()" ๋‚ด์ง€ "pfmt(), vpfmt(), lfmt(), vlfmt()"์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์œผ๋ฉฐ ๋‚˜์ค‘์— ์ œ๊ฑฐ๋  ๊ฒƒ์ด๋ผ๊ณ  ์–˜๊ธฐํ•œ๋‹ค.

EXAMPLE

#include <stdio.h>
#include <stdlib.h>
#include <fmtmsg.h>

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\n");
        break;
    case MM_NOMSG:
        printf("Nothing printed to stderr\n");
        break;
    case MM_NOCON:
        printf("No console output\n");
        break;
    default:
        printf("Unknown error from fmtmsg()\n");
    }
    exit(EXIT_SUCCESS);
}

์ถœ๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค:

util-linux:mount: ERROR: unknown mount option
TO FIX: See mount(8).  util-linux:mount:017

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ ํ›„์—๋Š”:

MSGVERB=text:action; export MSGVERB

์ถœ๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋œ๋‹ค:

unknown mount option
TO FIX: See mount(8).

SEE ALSO

addseverity(3), perror(3)


2017-09-15

โš ๏ธ **GitHub.com Fallback** โš ๏ธ