sigsuspend(2) - wariua/manpages-ko GitHub Wiki

NAME

sigsuspend, rt_sigsuspend - μ‹œκ·Έλ„ 기닀리기

SYNOPSIS

#include <signal.h>

int sigsuspend(const sigset_t *mask);

glibc κΈ°λŠ₯ 확인 맀크둜 μš”κ±΄ (feature_test_macros(7) μ°Έκ³ ):

sigsuspend():
_POSIX_C_SOURCE

DESCRIPTION

sigsuspend()λŠ” μΌμ‹œμ μœΌλ‘œ 호좜 μŠ€λ ˆλ“œμ˜ μ‹œκ·Έλ„ 마슀크λ₯Ό mask둜 μ€€ 마슀크둜 κ΅μ²΄ν•˜κ³ μ„œ 처리 λ™μž‘μ΄ μ‹œκ·Έλ„ ν•Έλ“€λŸ¬ ν˜ΈμΆœμ΄λ‚˜ ν”„λ‘œμ„ΈμŠ€ μ’…λ£ŒμΈ μ‹œκ·Έλ„μ΄ 전달될 λ•ŒκΉŒμ§€ μŠ€λ ˆλ“œ 싀행을 μ€‘μ§€ν•œλ‹€.

μ‹œκ·Έλ„μ΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œμ‹œν‚€λŠ” κ²½μš°μ—λŠ” sigsuspend()κ°€ λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ”λ‹€. μ‹œκ·Έλ„μ„ μž‘λŠ” κ²½μš°μ—λŠ” μ‹œκ·Έλ„ ν•Έλ“€λŸ¬ λ°˜ν™˜ 후에 sigsuspend()κ°€ λ°˜ν™˜ν•˜λ©°, μ‹œκ·Έλ„ λ§ˆμŠ€ν¬κ°€ sigsuspend() 호좜 μ „ μƒνƒœλ‘œ λ³΅μ›λœλ‹€.

SIGKILLμ΄λ‚˜ SIGSTOP을 λ§‰λŠ” 것은 λΆˆκ°€λŠ₯ν•˜λ‹€. mask에 이 μ‹œκ·Έλ„λ“€μ„ 지정해도 μŠ€λ ˆλ“œμ˜ μ‹œκ·Έλ„ λ§ˆμŠ€ν¬μ— 아무 영ν–₯을 μ£Όμ§€ μ•ŠλŠ”λ‹€.

RETURN VALUE

sigsuspend()λŠ” 항상 -1을 λ°˜ν™˜ν•˜λ©° 였λ₯˜(보톡은 EINTR)λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

ERRORS

EFAULT
maskκ°€ ν”„λ‘œμ„ΈμŠ€ μ£Όμ†Œ κ³΅κ°„μ˜ μœ νš¨ν•œ 일뢀가 μ•„λ‹Œ λ©”λͺ¨λ¦¬λ₯Ό 가리킀고 μžˆλ‹€.
EINTR
μ‹œκ·Έλ„μ— μ˜ν•΄ 호좜이 μ€‘λ‹¨λ˜μ—ˆλ‹€. signal(7) μ°Έκ³ .

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

NOTES

보톡은 μ€‘μš”ν•œ μ½”λ“œ ꡬ간 μ‹€ν–‰ λ™μ•ˆμ˜ μ‹œκ·Έλ„ 전달을 막기 μœ„ν•΄ sigprocmask(2)와 κ²°ν•©ν•΄μ„œ sigsuspend()λ₯Ό μ‚¬μš©ν•œλ‹€. λ¨Όμ € ν˜ΈμΆœμžκ°€ sigprocmask(2)둜 μ‹œκ·Έλ„μ„ λ§‰λŠ”λ‹€. μ€‘μš”ν•œ μ½”λ“œκ°€ 끝났을 λ•Œ sigprocmask(2)κ°€ (oldset 인자둜) λ°˜ν™˜ν–ˆλ˜ μ‹œκ·Έλ„ 마슀크둜 sigsuspend()λ₯Ό ν˜ΈμΆœν•΄μ„œ μ‹œκ·Έλ„μ„ κΈ°λ‹€λ¦°λ‹€.

μ‹œκ·Έλ„ μ§‘ν•© μ‘°μž‘μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ sigsetops(3)λ₯Ό 보라.

C 라이브러리/컀널 차이

μ›λž˜ λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ 호좜의 이름은 sigsuspend()μ˜€λ‹€. ν•˜μ§€λ§Œ λ¦¬λˆ…μŠ€ 2.2에 μ‹€μ‹œκ°„ μ‹œκ·Έλ„μ΄ μΆ”κ°€λ˜λ©΄μ„œ κ·Έ μ‹œμŠ€ν…œ 호좜이 μ§€μ›ν•˜λ˜ κ³ μ • 크기 32λΉ„νŠΈ sigset_t νƒ€μž…μ΄ λ”λŠ” μš©λ„μ— λ§žμ§€ μ•Šκ²Œ λ˜μ—ˆλ‹€. 그에 따라 ν™•μž₯된 sigset_t νƒ€μž…μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄ μƒˆλ‘œμš΄ μ‹œμŠ€ν…œ 호좜 rt_sigsuspend()κ°€ μΆ”κ°€λ˜μ—ˆλ‹€. μƒˆ μ‹œμŠ€ν…œ ν˜ΈμΆœμ—μ„œ 두 번째 인자둜 size_t sigsetsizeλ₯Ό λ°›λŠ”λ°, μ΄λŠ” mask의 μ‹œκ·Έλ„ μ§‘ν•©μ˜ λ°”μ΄νŠΈ λ‹¨μœ„ 크기λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. ν˜„μž¬λŠ” 이 μΈμžκ°€ sizeof(sigset_t) 값을 κ°€μ Έμ•Ό ν•œλ‹€. (μ•ˆ 그러면 EINVAL 였λ₯˜κ°€ λ‚œλ‹€.) glibc의 sigsuspend() 래퍼 ν•¨μˆ˜μ—μ„œ 이런 μ„ΈλΆ€ 사항을 감좔고 컀널이 μ œκ³΅ν•  λ•Œ 투λͺ…ν•˜κ²Œ rt_sigsuspend()λ₯Ό ν˜ΈμΆœν•œλ‹€.

SEE ALSO

kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7)


2019-03-06

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