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

NAME

error, error_at_line, error_message_count, error_one_per_line, error_print_progname - glibc 였λ₯˜ 보고 ν•¨μˆ˜

SYNOPSIS

#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);

DESCRIPTION

error()λŠ” λ²”μš© 였λ₯˜ 보고 ν•¨μˆ˜μ΄λ‹€. stdout을 ν”ŒλŸ¬μ‹œ ν•˜κ³  λ‚˜μ„œ stderr둜 ν”„λ‘œκ·Έλž¨ 이름, 콜둠과 곡백, printf(3) 방식 μ„œμ‹ λ¬Έμžμ—΄ format으둜 μ§€μ •ν•œ λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•˜λ©°, errnum이 0이 μ•„λ‹ˆλ©΄ 두 번째 콜둠과 곡백, 그리고 strerror(errnum)μ—μ„œ 얻은 λ¬Έμžμ—΄μ„ ν•¨κ»˜ 좜λ ₯ν•œλ‹€. format에 ν•„μš”ν•œ μΈμžκ°€ 있으면 인자 λͺ©λ‘μ—μ„œ format 뒀에 따라와야 ν•œλ‹€. 좜λ ₯ λ‚΄μš© λμ—λŠ” κ°œν–‰ λ¬Έμžκ°€ λΆ™λŠ”λ‹€.

error()μ—μ„œ μ°λŠ” ν”„λ‘œκ·Έλž¨ 이름은 μ „μ—­ λ³€μˆ˜ program_invocation_name(3)의 값이닀. program_invocation_name은 μ²˜μŒμ—λŠ” main()의 argv[0]κ³Ό 같은 값을 κ°€μ§€κ³  μžˆλ‹€. 이 λ³€μˆ˜μ˜ 값을 λ°”κΎΈλ©΄ error() 좜λ ₯도 바뀐닀.

statusκ°€ 0 μ•„λ‹Œ 값이면 error()μ—μ„œ κ·Έ 값을 μ’…λ£Œ μƒνƒœλ‘œ ν•΄μ„œ exit(3)λ₯Ό ν˜ΈμΆœν•΄μ„œ ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œμ‹œν‚¨λ‹€.

error_at_line() ν•¨μˆ˜λŠ” error()와 λ™μΌν•˜λ˜ μΆ”κ°€λ‘œ filename 및 linenum μΈμžκ°€ μžˆλ‹€. λ‚΄λ†“λŠ” 좜λ ₯이 error()와 λ§ˆμ°¬κ°€μ§€μ΄λ˜ ν”„λ‘œκ·Έλž¨ 이름 λ‹€μŒμ— 콜둠, filename의 κ°’, 콜둠, linenum의 값이 λ“€μ–΄κ°„λ‹€. error_at_line() 호좜 μ‹œμ— μ „μ²˜λ¦¬κΈ°μ˜ κ°’ __LINE__κ³Ό __FILE__이 μœ μš©ν•˜κΈ΄ ν•˜μ§€λ§Œ λ‹€λ₯Έ 값도 μ“Έ 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 이 μΈμžλ“€λ‘œ μž…λ ₯ 파일 λ‚΄μ˜ μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚Ό μˆ˜λ„ μžˆμ„ 것이닀.

μ „μ—­ λ³€μˆ˜ error_one_per_line이 0 μ•„λ‹Œ κ°’μœΌλ‘œ 섀정돼 있으면 같은 filename 및 linenum κ°’μœΌλ‘œ 연달아 error_at_line()을 ν˜ΈμΆœν•˜λ©΄ (처음의) λ©”μ‹œμ§€ ν•œ 개만 찍히게 λœλ‹€.

μ „μ—­ λ³€μˆ˜ error_message_countλŠ” error() 및 error_at_line()으둜 μ§€κΈˆκ» 좜λ ₯ν•œ λ©”μ‹œμ§€ 수λ₯Ό μ„Όλ‹€.

μ „μ—­ λ³€μˆ˜ error_print_progname에 ν•¨μˆ˜ μ£Όμ†Œκ°€ 할당돼 있으면 (즉 NULL이 μ•„λ‹ˆλ©΄) λ©”μ‹œμ§€ μ•žμ˜ ν”„λ‘œκ·Έλž¨ 이름과 μ½œλ‘ μ„ 좜λ ₯ν•˜μ§€ μ•Šκ³  λŒ€μ‹  κ·Έ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€. 그러면 κ·Έ ν•¨μˆ˜μ—μ„œ stderr둜 μ λ‹Ήν•œ λ¬Έμžμ—΄μ„ 찍어야 ν•œλ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 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이 0 μ•„λ‹Œ κ°’μœΌλ‘œ 섀정돼 μžˆλŠ” κ²½μš°μ—λŠ” λ§ˆμ§€λ§‰μœΌλ‘œ 찍은 파일 이름과 ν–‰ 번호λ₯Ό λ‹΄λŠ” (μ‚¬μš©μžμ—κ²Œ λ…ΈμΆœλ˜μ§€ μ•ŠλŠ”) 정적 λ³€μˆ˜λ“€μ— 동기화 μ—†λŠ” μ ‘κ·Ό 및 변경이 이뀄진닀. 갱신이 μ›μžμ μ΄μ§€ μ•ŠμœΌλ©° μ·¨μ†Œλ₯Ό λΉ„ν™œμ„±ν™” ν•˜κΈ° 전에 이뀄지기 λ•Œλ¬Έμ— 두 λ³€μˆ˜ 쀑 ν•˜λ‚˜λ§Œ λ³€κ²½λ˜κ³  싀행이 쀑단될 수 μžˆλ‹€. κ·Έ μ™Έμ—λŠ” error_at_line()이 error()와 거의 λ˜‘κ°™λ‹€.

CONFORMING TO

이 ν•¨μˆ˜ 및 λ³€μˆ˜λ“€μ€ GNU ν™•μž₯μ΄λ―€λ‘œ 이식성이 μžˆμ–΄μ•Ό ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ 말아야 ν•œλ‹€.

SEE ALSO

err(3), errno(3), exit(3), perror(3), program_invocation_name(3), strerror(3)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️