NAME

err, verr, errx, verrx, warn, vwarn, warnx, vwarnx - 형식 있는 오류 메시지

SYNOPSIS

#include <err.h>

noreturn void err(int eval, const char *fmt, ...);
noreturn void errx(int eval, const char *fmt, ...);

void warn(const char *fmt, ...);
void warnx(const char *fmt, ...);

#include <stdarg.h>

noreturn void verr(int eval, const char *fmt, va_list args);
noreturn void verrx(int eval, const char *fmt, va_list args);

void vwarn(const char *fmt, va_list args);
void vwarnx(const char *fmt, va_list args);

DESCRIPTION

err()warn() 계열 함수들은 서식 적용한 오류 메시지를 표준 오류 출력에 표시한다. 모든 경우에 프로그램 이름의 마지막 부분, 콜론 문자, 공백을 출력한다. fmt 인자가 NULL이 아니면 printf(3) 방식으로 서식 적용한 오류 메시지를 출력한다. 출력 내용 끝에 개행 문자가 붙는다.

err(), verr(), warn(), vwarn() 함수는 전역 변수 errnostrerror(3)에서 얻은 오류 메시지를 덧붙이는데, fmt 인자가 NULL이 아니면 사이에 콜론과 공백을 붙인다.

errx()warnx() 함수는 오류 메시지를 덧붙이지 않는다.

err(), verr(), errx(), verrx() 함수는 반환하지 않고 eval 인자 값으로 프로그램을 끝낸다.

ATTRIBUTES

이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.

인터페이스 속성
err(), errx(), warn(), warnx(),
verr(), verrx(), vwarn(), vwarnx()
스레드 안전성 MT-Safe locale

CONFORMING TO

이 함수들은 비표준 BSD 확장이다.

EXAMPLES

현재 errno 정보 문자열을 표시하고 끝내기:

p = malloc(size);
if (p == NULL)
    err(EXIT_FAILURE, NULL);
fd = open(file_name, O_RDONLY, 0);
if (fd == -1)
    err(EXIT_FAILURE, "%s", file_name);

오류 메시지 표시하고 끝내기:

if (tm.tm_hour < START_TIME)
    errx(EXIT_FAILURE, "too early, wait until %s",
            start_time_string);

문제 경고하기:

fd = open(raw_device, O_RDONLY, 0);
if (fd == -1)
    warnx("%s: %s: trying the block device",
            raw_device, strerror(errno));
fd = open(block_device, O_RDONLY, 0);
if (fd == -1)
    err(EXIT_FAILURE "%s", block_device);

SEE ALSO

error(3), exit(3), perror(3), printf(3), strerror(3)


2021-03-22