io_getevents(2) - wariua/manpages-ko GitHub Wiki
io_getevents - μλ£ νμ λΉλκΈ° I/O μ΄λ²€νΈ μ½μ΄ λ€μ΄κΈ°
#include <linux/aio_abi.h> /* νμν νμ
μ μ */
#include <linux/time.h> /* 'struct timespec' μ μ */
int io_getevents(aio_context_t ctx_id, long min_nr, long nr,
struct io_event *events, struct timespec *timeout);
μ£Όμ: μ΄ μμ€ν νΈμΆμ λν glibc λνΌκ° μλ€. NOTES μ°Έκ³ .
io_getevents()
μμ€ν
νΈμΆμ ctx_id
λ‘ μ§μ ν AIO λ¬Έλ§₯μ μλ£ νμμ μ΅μ min_nr
κ°μμ μ΅λ nr
κ°κΉμ§ μ΄λ²€νΈλ₯Ό μ½μ΄ λ€μ΄λ €κ³ μλνλ€.
timeout
μ μ΄λ²€νΈλ₯Ό κΈ°λ€λ¦΄ μκ° κΈΈμ΄λ₯Ό λνλ΄λ©° λ€μ κ΅¬μ‘°μ²΄λ‘ μλμ νμμμμΌλ‘ μ§μ νλ€.
struct timespec {
time_t tv_sec; /* μ΄ */
long tv_nsec; /* λλ
Έμ΄ [0 .. 999999999] */
};
μ§μ μκ°μ μμ€ν ν΄λ ν΄μλμ λ°λΌ μ¬λ¦Ό νλ©° μ΄λ₯΄κ² λ§λ£νμ§ μλλ€κ³ 보μ₯λλ€.
timeout
μ NULLλ‘ μ§μ νλ κ²μ μ΅μ min_nr
κ° μ΄λ²€νΈλ₯Ό μ»μ λκΉμ§ 무νμ λΈλ‘ νλΌλ λ»μ΄λ€.
μ±κ³΅ μ io_getevents()
λ μ½μ΄ λ€μΈ μ΄λ²€νΈ μλ₯Ό λ°ννλ€. timeout
μ΄ λ§λ£λ κ²½μ°μλ 0μ΄λ min_nr
λ³΄λ€ μμ μ΄λ€ κ°μΌ μ μλ€. λν νΈμΆμ΄ μκ·Έλ νΈλ€λ¬μ μν΄ μ€λ¨λ κ²½μ°μλ min_nr
λ³΄λ€ μμ 0 μλ μ΄λ€ κ°μΌ μ μλ€.
μ€ν¨ λ°νμ λν΄μ NOTESλ₯Ό 보λΌ.
EFAULT
-
events
λtimeout
μ΄ μ ν¨νμ§ μμ ν¬μΈν°μ΄λ€. EINTR
- μκ·Έλ νΈλ€λ¬μ μν΄ μ€λ¨λμλ€. signal(7) μ°Έκ³ .
EINVAL
-
ctx_id
κ° μ ν¨νμ§ μλ€.min_nr
μ΄ λ²μ λ°μ΄κ±°λnr
μ΄ λ²μ λ°μ΄λ€. ENOSYS
- μ΄ μν€ν
μ²μ
io_getevents()
κ° κ΅¬νλΌ μμ§ μλ€.
리λ μ€ 2.5μμ λΉλκΈ° I/O μμ€ν νΈμΆλ€μ΄ μ²μ λ±μ₯νλ€.
io_getevents()
λ 리λ
μ€ μ μ©μ΄λ―λ‘ μ΄μμ±μ΄ μμ΄μΌ νλ νλ‘κ·Έλ¨μμλ μ¬μ©νμ§ λ§μμΌ νλ€.
glibcμμ μ΄ μμ€ν
νΈμΆμ λνΌλ₯Ό μ 곡νμ§ μλλ€. syscall(2)μ μ΄μ©ν΄ νΈμΆν μλ μλ€. νμ§λ§ μλ§ κ·Έλ³΄λ€λ libaio
μμ μ 곡νλ io_getevents()
λνΌ ν¨μλ₯Ό μ°κ³ μΆμ κ²μ΄λ€.
μ°Έκ³ λ‘ libaio
λνΌ ν¨μμμλ ctx_id
μΈμμ λ€λ₯Έ νμ
(io_context_t
)μ μ΄λ€. λν libaio
λνΌμμλ μΌλ°μ μΈ C λΌμ΄λΈλ¬λ¦¬ μ€λ₯ νμ κ΄νμ λ°λ₯΄μ§ μλλ€. μ¦ μ€λ₯ μμ μμ μ€λ₯ λ²νΈλ₯Ό (ERRORSμ λμ΄λ κ°λ€ μ€ νλμ μμ κ°μ) λ°ννλ€. syscall(2)μ ν΅ν΄ μμ€ν
νΈμΆμ λΆλ₯΄λ κ²½μ°μλ λ°ν κ°μ΄ μΌλ°μ μΈ μ€λ₯ νμ κ΄νμ λ°λ₯Έλ€. μ¦ -1μ΄κ³ errno
μ μ€λ₯λ₯Ό λνλ΄λ (μμ) κ°μ΄ μ€μ λλ€.
μ ν¨νμ§ μμ ctx_id
κ° EINVAL
μ€λ₯λ₯Ό μμ±νλ λμ μΈκ·Έλ¨Όν
μ΄μ
ν΄νΈλ₯Ό μ λ°ν μ μλ€.
io_cancel(2), io_destroy(2), io_setup(2), io_submit(2), aio(7), time(7)
2017-09-15