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

NAME

restart_syscall - μ •μ§€ μ‹œκ·Έλ„λ‘œ μ€‘λ‹¨λœ ν›„ μ‹œμŠ€ν…œ 호좜 μž¬μ‹œμž‘ ν•˜κΈ°

SYNOPSIS

int restart_syscall(void);

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

DESCRIPTION

μ‹œκ·Έλ„(κ°€λ Ή SIGSTOPμ΄λ‚˜ SIGTSTP)에 μ˜ν•΄ μ •μ§€λλ˜ ν”„λ‘œμ„ΈμŠ€κ°€ 이후 SIGCONT μ‹œκ·Έλ„μ„ μˆ˜μ‹ ν•˜μ—¬ 재개된 후에 νŠΉμ • μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ„ μž¬μ‹œμž‘ν•˜κΈ° μœ„ν•΄ restart_syscall()을 μ‚¬μš©ν•œλ‹€. 이 μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ 컀널 λ‚΄λΆ€ μš©λ„λ‘œλ§Œ μ„€κ³„λœ 것이닀.

μž¬μ‹œμž‘ λ•Œ μ‹œκ°„ κ΄€λ ¨ λ§€κ°œλ³€μˆ˜λ₯Ό μ‘°μ •ν•΄μ•Ό ν•˜λŠ” μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ„ μž¬μ‹œμž‘ ν•˜λŠ” λ°μ—λ§Œ restart_syscall()을 μ‚¬μš©ν•œλ‹€. λ§ν•˜μžλ©΄ poll(2) (λ¦¬λˆ…μŠ€ 2.6.24λΆ€ν„°), nanosleep(2) (λ¦¬λˆ…μŠ€ 2.6λΆ€ν„°), clock_nanosleep(2) (λ¦¬λˆ…μŠ€ 2.6λΆ€ν„°), 그리고 futex(2)λ₯Ό FUTEX_WAIT(λ¦¬λˆ…μŠ€ 2.6.22λΆ€ν„°) 및 FUTEX_WAIT_BITSET(λ¦¬λˆ…μŠ€ 2.6.31λΆ€ν„°)으둜 μ“Έ λ•Œμ΄λ‹€. restart_syscall()은 (μ‹œκ·Έλ„μ— μ˜ν•΄ ν”„λ‘œμ„ΈμŠ€κ°€ μ •μ§€λ˜μ–΄ 있던 μ‹œκ°„λ₯Ό 포함해) 이미 μ§€λ‚œ μ‹œκ°„μ„ κ³ λ €ν•΄ 적절히 μ‘°μ •ν•œ μ‹œκ°„ 인자λ₯Ό κ°€μ§€κ³  μ€‘λ‹¨λλ˜ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μž¬μ‹œμž‘ ν•œλ‹€. restart_syscall() λ©”μ»€λ‹ˆμ¦˜μ΄ μ—†λ‹€λ©΄ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행을 μ†ν–‰ν–ˆμ„ λ•Œ 이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ„ μž¬μ‹œμž‘ ν•˜λ©΄μ„œ 이미 μ§€λ‚œ μ‹œκ°„μ„ μ •ν™•νžˆ μ œν•˜μ§€ λͺ»ν•  것이닀.

RETURN VALUE

restart_syscall()의 λ°˜ν™˜ 값은 μž¬μ‹œμž‘ ν•˜λŠ” κ·Έ μ‹œμŠ€ν…œ 호좜의 λ°˜ν™˜ 값이닀.

ERRORS

restart_syscall()둜 μž¬μ‹œμž‘ ν•˜λŠ” κ·Έ μ‹œμŠ€ν…œ ν˜ΈμΆœμ—μ„œμ˜ 였λ₯˜μ— λ”°λΌμ„œ errnoκ°€ μ„€μ •λœλ‹€.

VERSIONS

λ¦¬λˆ…μŠ€ 2.6λΆ€ν„° restart_syscall() μ‹œμŠ€ν…œ 호좜이 μ‘΄μž¬ν•œλ‹€.

CONFORMING TO

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

NOTES

이 μ‹œμŠ€ν…œ ν˜ΈμΆœμ— λŒ€ν•œ glibc λž˜νΌκ°€ μ—†λ‹€. μ»€λ„μ—μ„œλ§Œ μ“°κΈ° μœ„ν•œ 것이고 μ‘μš©μ—μ„œλŠ” μ ˆλŒ€ ν˜ΈμΆœν•˜μ§€ 말아야 ν•˜λŠ” 호좜이기 λ•Œλ¬Έμ΄λ‹€.

ν”„λ‘œμ„ΈμŠ€κ°€ μ‹œκ·Έλ„μ— μ˜ν•΄ μ •μ§€λ˜μ—ˆλ‹€κ°€ SIGCONT에 μ˜ν•΄ 재개된 ν›„ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μž¬μ‹œμž‘ν•  λ•Œ ν”„λ‘œμ„ΈμŠ€κ°€ μ •μ§€ μƒνƒœμ—μ„œ 보낸 μ‹œκ°„μ΄ μ›λž˜ μ‹œμŠ€ν…œ ν˜ΈμΆœμ— μ§€μ •ν–ˆλ˜ νƒ€μž„μ•„μ›ƒ μ‹œκ°„μ—μ„œ 빠지도둝 ν•˜κΈ° μœ„ν•΄ μ»€λ„μ—μ„œ restart_syscall()을 μ‚¬μš©ν•œλ‹€. μ‹œμŠ€ν…œ ν˜ΈμΆœμ—μ„œ νƒ€μž„μ•„μ›ƒ 인자λ₯Ό λ°›μœΌλ©° μ •μ§€ μ‹œκ·Έλ„ 및 SIGCONT 후에 μžλ™μœΌλ‘œ μž¬μ‹œμž‘ ν•˜μ§€λ§Œ restart_syscall() λ©”μ»€λ‹ˆμ¦˜μ„ λ‚΄μž₯ν•˜κ³  μžˆμ§€ μ•Šμ€ κ²½μš°μ—λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ •μ§€ μƒνƒœλ‘œ 보낸 μ‹œκ°„μ΄ νƒ€μž„μ•„μ›ƒ κ°’μ—μ„œ λΉ μ§€μ§€ μ•ŠλŠ”λ‹€. 이런 문제λ₯Ό κ²ͺλŠ” μ£Όμš” μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€λ‘œ ppoll(2), select(2), pselect(2)κ°€ μžˆλ‹€.

μ‚¬μš©μž κ³΅κ°„μ—κ²ŒλŠ” restart_syscall()의 λ™μž‘μ΄ 거의 보이지 μ•ŠλŠ”λ‹€. μž¬μ‹œμž‘ λ˜λŠ” μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ λΆˆλ €λ˜ ν”„λ‘œμ„ΈμŠ€μ—κ²ŒλŠ” μ‹œμŠ€ν…œ 호좜이 ν‰μ†Œμ²˜λŸΌ μ‹€ν–‰λ˜κ³  λ°˜ν™˜ν•œ κ²ƒμ²˜λŸΌ 보인닀.

SEE ALSO

sigaction(2), sigreturn(2), signal(7)


2017-09-15

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