tkill(2) - wariua/manpages-ko GitHub Wiki
tkill, tgkill - μ€λ λλ‘ μκ·Έλ 보λ΄κΈ°
int tkill(int tid, int sig);
int tgkill(int tgid, int tid, int sig);
μ£Όμ: tkill()
μ λν glibc λνΌκ° μλ€. NOTES μ°Έκ³ .
tgkill()
μ μ€λ λ κ·Έλ£Ή tgid
μμ μλ μ€λ λ IDκ° tid
μΈ μ€λ λμκ² μκ·Έλ sig
λ₯Ό 보λΈλ€. (λ°λ©΄ νλ‘μΈμ€(μ¦ μ€λ λ κ·Έλ£Ή) μ 체μκ² μκ·Έλμ 보λ΄λ €λ©΄ kill(2)μ μΈ μ μμΌλ©°, κ·Έλ¬λ©΄ κ·Έ νλ‘μΈμ€ λ΄μ μμ μ€λ λμκ² μκ·Έλμ΄ μ λ¬λλ€.)
tkill()
μ tgkill()
μ ꡬμ μ μ‘°μ΄λ€. λμ μ€λ λ IDλ§ μ§μ ν μ μμΌλ©°, κ·Έλμ μ€λ λκ° μ’
λ£λμ΄ κ·Έ μ€λ λ IDκ° μ¬νμ©λλ κ²½μ° μλͺ»λ μ€λ λμκ² μκ·Έλμ λ³΄λΌ μλ μλ€. μ΄ μμ€ν
νΈμΆ μ¬μ©μ νΌν΄μΌ νλ€.
κ°κ³΅ μ λ μμ€ν νΈμΆ μΈν°νμ΄μ€μ΄λ©° λ΄λΆ μ€λ λ λΌμ΄λΈλ¬λ¦¬μμμ μ¬μ©μ μν κ²μ΄λ€.
μ±κ³΅ μ 0μ λ°ννλ€. μ€λ₯ μ -1μ λ°ννλ©° errno
λ₯Ό μ μ ν μ€μ νλ€.
EINVAL
- μ§μ ν μ€λ λ IDλ μ€λ λ κ·Έλ£Ή ID, μκ·Έλμ΄ μ ν¨νμ§ μλ€.
EPERM
- κΆν κ±°λΆ. νμν κΆνμ λν΄μ kill(2)μ 보λΌ.
ESRCH
- μ§μ ν μ€λ λ IDλ₯Ό (μ€λ λ κ·Έλ£Ή IDλ₯Ό) κ°μ§ νλ‘μΈμ€κ° μ‘΄μ¬νμ§ μλλ€.
EAGAIN
-
RLIMIT_SIGPENDING
μμ νκ³μ λλ¬νκ³sig
κ° μ€μκ° μκ·Έλμ΄λ€. EAGAIN
- μ¬μ© κ°λ₯ν 컀λ λ©λͺ¨λ¦¬κ° λΆμΆ©λΆνκ³
sig
κ° μ€μκ° μκ·Έλμ΄λ€.
리λ
μ€ 2.4.19 / 2.5.4λΆν° tkill()
μ μ§μνλ€. 리λ
μ€ 2.5.75μμ tgkill()
μ΄ μΆκ°λμλ€.
glibc λ²μ 2.30μμ tgkill()
μ λν λΌμ΄λΈλ¬λ¦¬ μ§μμ΄ μΆκ°λμλ€.
tkill()
κ³Ό tgkill()
μ 리λ
μ€ μ μ©μ΄λ―λ‘ μ΄μμ±μ΄ μμ΄μΌ νλ νλ‘κ·Έλ¨μμλ μ¬μ©νμ§ λ§μμΌ νλ€.
μ€λ λ κ·Έλ£Ήμ λν μ€λͺ
μ clone(2)μ CLONE_THREAD
μ€λͺ
μ 보λΌ.
glibcμμ tkill()
μ λνΌλ₯Ό μ 곡νμ§ μλλ€. syscall(2)μ μ΄μ©ν΄ νΈμΆν΄μΌ νλ€. glibc 2.30 μ μμ tgkill()
μλ λνΌ ν¨μκ° μμλ€.
clone(2), gettid(2), kill(2), rt_sigqueueinfo(2)
2019-08-02