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

NAME

rt_sigqueueinfo, rt_tgsigqueueinfo - μ‹œκ·Έλ„κ³Ό 데이터λ₯Ό 큐에 λ„£κΈ°

SYNOPSIS

int rt_sigqueueinfo(pid_t tgid, int sig, siginfo_t *uinfo);

int rt_tgsigqueueinfo(pid_t tgid, pid_t tid, int sig,
                      siginfo_t *uinfo);

주의: 이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ— λŒ€ν•œ glibc λž˜νΌκ°€ μ—†λ‹€. NOTES μ°Έκ³ .

DESCRIPTION

rt_sigqueueinfo() 및 rt_tgsigqueueinfo() μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œμ—κ²Œ μ‹œκ·Έλ„μ— 데이터λ₯Ό 더해 λ³΄λ‚΄λŠ” 데 μ‚¬μš©ν•˜λŠ” μ €μˆ˜μ€€ μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. μˆ˜μ‹ μžμ—μ„œ sigaction(2) SA_SIGINFO ν”Œλž˜κ·Έλ‘œ μ‹œκ·Έλ„ ν•Έλ“€λŸ¬λ₯Ό μ„€μ •ν•˜μ—¬ λ™λ°˜ 데이터λ₯Ό 얻을 수 μžˆλ‹€.

이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ€ μ‘μš©μ—μ„œ 직접 μ‚¬μš©ν•˜κΈ° μœ„ν•œ 것이 μ•„λ‹ˆλΌ sigqueue(3)와 pthread_sigqueue(3)λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ„λ‘ μ œκ³΅ν•˜λŠ” 것이닀.

rt_sigqueueinfo() μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ IDκ°€ tgid인 μŠ€λ ˆλ“œ κ·Έλ£Ήμ—κ²Œ μ‹œκ·Έλ„ sigλ₯Ό 보낸닀. ("μŠ€λ ˆλ“œ κ·Έλ£Ή"μ΄λΌλŠ” μš©μ–΄λŠ” "ν”„λ‘œμ„ΈμŠ€"와 λ™μ˜μ–΄μ΄λ©° tidλŠ” 전톡적인 μœ λ‹‰μŠ€ ν”„λ‘œμ„ΈμŠ€ ID에 ν•΄λ‹Ήν•œλ‹€.) κ·Έ μŠ€λ ˆλ“œ 그룹의 μž„μ˜ κ΅¬μ„±μ›μ—κ²Œ (즉 ν˜„μž¬ κ·Έ μ‹œκ·Έλ„μ„ 막고 μžˆμ§€ μ•Šμ€ μŠ€λ ˆλ“œλ“€ 쀑 ν•˜λ‚˜μ—κ²Œ) μ‹œκ·Έλ„μ΄ μ „λ‹¬λœλ‹€.

uinfo μΈμžλŠ” μ‹œκ·Έλ„μ— λ™λ°˜λ˜λŠ” 데이터λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 이 μΈμžλŠ” sigaction(2)에 기술된 (그리고 <sigaction.h>λ₯Ό ν¬ν•¨μ‹œμΌœμ„œ μ •μ˜ν•˜λŠ”) siginfo_t νƒ€μž…μ˜ ꡬ쑰체에 λŒ€ν•œ 포인터이닀. ν˜ΈμΆœμžκ°€ 이 ꡬ쑰체의 λ‹€μŒ ν•„λ“œλ“€μ„ μ„€μ •ν•΄μ•Ό ν•œλ‹€.

si_code
λ¦¬λˆ…μŠ€ 컀널 μ†ŒμŠ€ 파일 include/asm-generic/siginfo.h에 μžˆλŠ” SI_* μ½”λ“œλ“€ 쀑 ν•˜λ‚˜μ—¬μ•Ό ν•˜λ˜ μ½”λ“œκ°€ μŒμˆ˜μ—¬μ•Ό ν•˜λ©° (즉 μ»€λ„μ—μ„œ kill(2)둜 보낸 μ‹œκ·Έλ„μ„ λ‚˜νƒ€λ‚΄λŠ” 데 μ“°λŠ” SI_USER일 수 μ—†μœΌλ©°) (λ¦¬λˆ…μŠ€ 2.6.39λΆ€ν„°) (μ»€λ„μ—μ„œ tgkill(2)둜 보낸 μ‹œκ·Έλ„μ„ λ‚˜νƒ€λ‚΄λŠ” 데 μ“°λŠ”) SI_TKILL일 수 μ—†λ‹€λŠ” μ œμ•½μ΄ μžˆλ‹€.
si_pid
ν”„λ‘œμ„ΈμŠ€ ID둜 μ„€μ •ν•΄μ•Ό ν•˜λŠ”λ°, 보톡은 μ†‘μ‹ μžμ˜ ν”„λ‘œμ„ΈμŠ€ ID이닀.
si_uid
μ‚¬μš©μž ID둜 μ„€μ •ν•΄μ•Ό ν•˜λŠ”λ°, 보톡은 μ†‘μ‹ μžμ˜ μ‹€μ œ μ‚¬μš©μž ID이닀.
si_value
이 ν•„λ“œλŠ” μ‹œκ·Έλ„μ— λ™λ°˜μ‹œν‚¬ μ‚¬μš©μž 데이터λ₯Ό λ‹΄λŠ”λ‹€. 더 μžμ„Έν•œ μ •λ³΄λŠ” sigqueue(3)의 λ§ˆμ§€λ§‰(union sigval) 인자 μ„€λͺ…을 보라.

μ»€λ„μ—μ„œ λ‚΄λΆ€μ μœΌλ‘œ si_signo ν•„λ“œλ₯Ό sig에 μ§€μ •λœ κ°’μœΌλ‘œ μ„€μ •ν•΄μ„œ μ‹œκ·Έλ„ μˆ˜μ‹ μžκ°€ κ·Έ ν•„λ“œλ₯Ό ν†΅ν•΄μ„œλ„ μ‹œκ·Έλ„ 번호λ₯Ό 얻을 수 μžˆλ„λ‘ ν•œλ‹€.

rt_tgsigqueueinfo() μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ rt_sigqueueinfo()와 λΉ„μŠ·ν•˜λ˜ μŠ€λ ˆλ“œ κ·Έλ£Ή ID tgid와 μŠ€λ ˆλ“œ κ·Έλ£Ή λ‚΄ μŠ€λ ˆλ“œ tid의 μ‘°ν•©μœΌλ‘œ μ§€μ •ν•œ ν•œ μŠ€λ ˆλ“œμ—κ²Œ μ‹œκ·Έλ„κ³Ό 데이터λ₯Ό 보낸닀.

RETURN VALUE

성곡 μ‹œ 이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ€ 0을 λ°˜ν™˜ν•œλ‹€. 였λ₯˜ μ‹œ -1을 λ°˜ν™˜ν•˜λ©° κ·Έ 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

ERRORS

EAGAIN
큐에 넣을 수 μžˆλŠ” μ‹œκ·Έλ„ 개수 ν•œκ³„μ— λ„λ‹¬ν–ˆλ‹€. (μžμ„Έν•œ λ‚΄μš©μ€ signal(7)을 보라.)
EINVAL
sigλ‚˜ tgid, tidκ°€ μœ νš¨ν•˜μ§€ μ•Šλ‹€.
EPERM
ν˜ΈμΆœμžκ°€ λŒ€μƒμ—κ²Œ μ‹œκ·Έλ„μ„ 보낼 κΆŒν•œμ„ κ°€μ§€κ³  μžˆμ§€ μ•Šλ‹€. ν•„μš”ν•œ κΆŒν•œμ— λŒ€ν•΄μ„  kill(2)을 보라. λ˜λŠ” uinfo->si_codeκ°€ μœ νš¨ν•˜μ§€ μ•Šλ‹€.
ESRCH

rt_sigqueueinfo(): tgid에 μΌμΉ˜ν•˜λŠ” μŠ€λ ˆλ“œ 그룹을 찾을 수 μ—†λ‹€.

rt_tgsigqueueinfo(): tgid와 tid에 μΌμΉ˜ν•˜λŠ” μŠ€λ ˆλ“œλ₯Ό 찾을 수 μ—†λ‹€.

VERSIONS

λ¦¬λˆ…μŠ€ 버전 2.2μ—μ„œ rt_sigqueueinfo() μ‹œμŠ€ν…œ 호좜이 μΆ”κ°€λ˜μ—ˆλ‹€. λ¦¬λˆ…μŠ€ 버전 2.6.31μ—μ„œ rt_tgsigqueueinfo() μ‹œμŠ€ν…œ 호좜이 μΆ”κ°€λ˜μ—ˆλ‹€.

CONFORMING TO

이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ€ λ¦¬λˆ…μŠ€ μ „μš©μ΄λ‹€.

NOTES

이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ€ μ‘μš©μ—μ„œ μ“°κΈ° μœ„ν•œ 것이 μ•„λ‹ˆλ―€λ‘œ glibc 래퍼 ν•¨μˆ˜κ°€ μ—†λ‹€. 그럴 일은 μ—†κ² μ§€λ§Œ ν˜Ήμ‹œλΌλ„ 직접 ν˜ΈμΆœν•˜κ³  싢은 κ²½μš°μ—λŠ” syscall(2)을 μ΄μš©ν•˜λ©΄ λœλ‹€.

kill(2)μ—μ„œμ²˜λŸΌ 널 μ‹œκ·Έλ„(0)을 μ‚¬μš©ν•΄μ„œ μ§€μ •ν•œ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ§€ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ 확인할 수 μžˆλ‹€.

SEE ALSO

kill(2), sigaction(2), sigprocmask(2), tgkill(2), pthread_sigqueue(3), sigqueue(3), signal(7)


2017-09-15

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