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

NAME

io_setup - 비동기 I/O λ¬Έλ§₯ λ§Œλ“€κΈ°

SYNOPSIS

#include <linux/aio_abi.h>          /* ν•„μš”ν•œ νƒ€μž… μ •μ˜ */

int io_setup(unsigned nr_events, aio_context_t *ctx_idp);

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

DESCRIPTION

io_setup() μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ nr_events 개 λ™μž‘μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜κΈ°μ— μ ν•©ν•œ 비동기 I/O λ¬Έλ§₯을 μƒμ„±ν•œλ‹€. ctx_idp μΈμžκ°€ 이미 μ‘΄μž¬ν•˜λŠ” AIO λ¬Έλ§₯을 κ°€λ¦¬μΌœμ„  μ•ˆ 되며 호좜 전에 λ¬Έλ§₯을 0으둜 μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•œλ‹€. AIO λ¬Έλ§₯을 μ„±κ³΅μ μœΌλ‘œ μƒμ„±ν–ˆμ„ λ•Œ *ctx_idp에 μƒˆ 핸듀이 λ“€μ–΄κ°„λ‹€.

RETURN VALUE

성곡 μ‹œ io_setup()은 0을 λ°˜ν™˜ν•œλ‹€. μ‹€νŒ¨ λ°˜ν™˜μ— λŒ€ν•΄μ„  NOTESλ₯Ό 보라.

ERRORS

EAGAIN
μ§€μ •ν•œ nr_eventsκ°€ /proc/sys/fs/aio-max-nr에 κ·œμ •λœ μ‚¬μš©μžμ˜ κ°€μš© 이벀트 μ œν•œμ„ μ΄ˆκ³Όν•œλ‹€.
EFAULT
ctx_idp에 μœ νš¨ν•˜μ§€ μ•Šμ€ 포인터λ₯Ό μ „λ‹¬ν–ˆλ‹€.
EINVAL
ctx_idpκ°€ μ΄ˆκΈ°ν™” λ˜μ§€ μ•Šμ•˜λ‹€. μ§€μ •ν•œ nr_eventsκ°€ λ‚΄λΆ€ μ œν•œμ„ μ΄ˆκ³Όν•œλ‹€. nr_eventsκ°€ 0보닀 컀야 ν•œλ‹€.
ENOMEM
μ‚¬μš© κ°€λŠ₯ν•œ 컀널 μžμ›μ΄ μΆ©λΆ„μΉ˜ μ•Šλ‹€.
ENOSYS
이 μ•„ν‚€ν…μ²˜μ— io_setup()이 κ΅¬ν˜„λΌ μžˆμ§€ μ•Šλ‹€.

VERSIONS

λ¦¬λˆ…μŠ€ 2.5μ—μ„œ 비동기 I/O μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ΄ 처음 λ“±μž₯ν–ˆλ‹€.

CONFORMING TO

io_setup()은 λ¦¬λˆ…μŠ€ μ „μš©μ΄λ―€λ‘œ 이식성이 μžˆμ–΄μ•Ό ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ 말아야 ν•œλ‹€.

NOTES

glibcμ—μ„œ 이 μ‹œμŠ€ν…œ 호좜의 래퍼λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€. syscall(2)을 μ΄μš©ν•΄ ν˜ΈμΆœν•  μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ μ•„λ§ˆ κ·Έλ³΄λ‹€λŠ” libaioμ—μ„œ μ œκ³΅ν•˜λŠ” io_setup() 래퍼 ν•¨μˆ˜λ₯Ό μ“°κ³  싢을 것이닀.

참고둜 libaio 래퍼 ν•¨μˆ˜μ—μ„œλŠ” ctx_idp μΈμžμ— λ‹€λ₯Έ νƒ€μž…(io_context_t *)을 μ“΄λ‹€. λ˜ν•œ libaio λž˜νΌμ—μ„œλŠ” 일반적인 C 라이브러리 였λ₯˜ ν‘œμ‹œ 관행을 λ”°λ₯΄μ§€ μ•ŠλŠ”λ‹€. 즉 였λ₯˜ μ‹œμ— 음수 였λ₯˜ 번호λ₯Ό (ERRORS에 λ‚˜μ—΄λœ κ°’λ“€ 쀑 ν•˜λ‚˜μ˜ 음수 값을) λ°˜ν™˜ν•œλ‹€. syscall(2)을 톡해 μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ λΆ€λ₯΄λŠ” κ²½μš°μ—λŠ” λ°˜ν™˜ 값이 일반적인 였λ₯˜ ν‘œμ‹œ 관행을 λ”°λ₯Έλ‹€. 즉 -1이고 errno에 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” (μ–‘μˆ˜) 값이 μ„€μ •λœλ‹€.

SEE ALSO

io_cancel(2), io_destroy(2), io_getevents(2), io_submit(2), aio(7)


2017-09-15

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