io_cancel(2) - wariua/manpages-ko GitHub Wiki
io_cancel - λ―Έμ²λ¦¬ λΉλκΈ° I/O λμ μ·¨μνκΈ°
#include <linux/aio_abi.h> /* νμν νμ
μ μ */
int io_cancel(aio_context_t ctx_id, struct iocb *iocb,
struct io_event *result);
μ£Όμ: μ΄ μμ€ν νΈμΆμ λν glibc λνΌκ° μλ€. NOTES μ°Έκ³ .
io_cancel()
μμ€ν
νΈμΆμ μμ io_submit(2)μΌλ‘ μ μΆν λΉλκΈ° I/O λμμ μ·¨μνλ €κ³ μλνλ€. iocb
μΈμλ μ·¨μν λμμ λνλ΄λ©° ctx_id
μΈμλ λμμ μ μΆνλ AIO λ¬Έλ§₯μ΄λ€. λμμ μ±κ³΅μ μΌλ‘ μ·¨μν κ²½μ° μ΄λ²€νΈκ° μλ£ νλ‘ λ€μ΄κ°μ§ μκ³ result
κ° κ°λ¦¬ν€λ λ©λͺ¨λ¦¬λ‘ 볡μ¬λλ€.
μ±κ³΅ μ io_cancel()
μ 0μ λ°ννλ€. μ€ν¨ λ°νμ λν΄μ NOTESλ₯Ό 보λΌ.
EAGAIN
- μ§μ ν
iocb
κ° μ·¨μλμ§ μμλ€. EFAULT
- ν μλ£ κ΅¬μ‘°κ° μ ν¨νμ§ μμ λ°μ΄ν°λ₯Ό κ°λ¦¬ν€κ³ μλ€.
EINVAL
-
ctx_id
λ‘ μ§μ ν AIO λ¬Έλ§₯μ΄ μ ν¨νμ§ μλ€. ENOSYS
- μ΄ μν€ν
μ²μ
io_cancel()
μ΄ κ΅¬νλΌ μμ§ μλ€.
리λ μ€ 2.5μμ λΉλκΈ° I/O μμ€ν νΈμΆλ€μ΄ μ²μ λ±μ₯νλ€.
io_cancel()
μ 리λ
μ€ μ μ©μ΄λ―λ‘ μ΄μμ±μ΄ μμ΄μΌ νλ νλ‘κ·Έλ¨μμλ μ¬μ©νμ§ λ§μμΌ νλ€.
glibcμμ μ΄ μμ€ν
νΈμΆμ λνΌλ₯Ό μ 곡νμ§ μλλ€. syscall(2)μ μ΄μ©ν΄ νΈμΆν μλ μλ€. νμ§λ§ μλ§ κ·Έλ³΄λ€λ libaio
μμ μ 곡νλ io_cancel()
λνΌ ν¨μλ₯Ό μ°κ³ μΆμ κ²μ΄λ€.
μ°Έκ³ λ‘ libaio
λνΌ ν¨μμμλ ctx_id
μΈμμ λ€λ₯Έ νμ
(io_context_t
)μ μ΄λ€. λν libaio
λνΌμμλ μΌλ°μ μΈ C λΌμ΄λΈλ¬λ¦¬ μ€λ₯ νμ κ΄νμ λ°λ₯΄μ§ μλλ€. μ¦ μ€λ₯ μμ μμ μ€λ₯ λ²νΈλ₯Ό (ERRORSμ λμ΄λ κ°λ€ μ€ νλμ μμ κ°μ) λ°ννλ€. syscall(2)μ ν΅ν΄ μμ€ν
νΈμΆμ λΆλ₯΄λ κ²½μ°μλ λ°ν κ°μ΄ μΌλ°μ μΈ μ€λ₯ νμ κ΄νμ λ°λ₯Έλ€. μ¦ -1μ΄κ³ errno
μ μ€λ₯λ₯Ό λνλ΄λ (μμ) κ°μ΄ μ€μ λλ€.
io_destroy(2), io_getevents(2), io_setup(2), io_submit(2), aio(7)
2017-09-15