lio_listio(3) - wariua/manpages-ko GitHub Wiki

NAME

lio_listio - μ—¬λŸ¬ I/O μš”μ²­ κ°œμ‹œν•˜κΈ°

SYNOPSIS

#include <aio.h>

int lio_listio(int mode, struct aiocb *const aiocb_list[],
               int nitems, struct sigevent *sevp);

-lrt둜 링크.

DESCRIPTION

lio_listio() ν•¨μˆ˜λŠ” aiocb_list 배열이 κΈ°μˆ ν•˜λŠ” I/O λ™μž‘λ“€μ„ κ°œμ‹œν•œλ‹€.

mode 인자의 값은 λ‹€μŒ 쀑 ν•˜λ‚˜μ΄λ‹€.

LIO_WAIT
λͺ¨λ“  λ™μž‘λ“€μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ 호좜이 블둝 λœλ‹€. sevp μΈμžλŠ” λ¬΄μ‹œν•œλ‹€.
LIO_NOWAIT
I/O λ™μž‘λ“€μ„ 처리 큐에 λ„£κ³  호좜이 μ¦‰μ‹œ λ°˜ν™˜ν•œλ‹€. I/O λ™μž‘λ“€μ΄ λͺ¨λ‘ μ™„λ£Œλ˜λ©΄ sevp 인자둜 μ§€μ •ν•œ λŒ€λ‘œ 비동기 μ•Œλ¦Όμ΄ 이뀄진닀. μžμ„Έν•œ λ‚΄μš©μ€ sigevent(7) μ°Έκ³ . sevpκ°€ NULL이면 비동기 μ•Œλ¦Όμ΄ 이뀄지지 μ•ŠλŠ”λ‹€.

aiocb_list μΈμžλŠ” I/O λ™μž‘μ„ κΈ°μˆ ν•˜λŠ” aiocb ꡬ쑰체에 λŒ€ν•œ ν¬μΈν„°λ“€μ˜ 배열이닀. κ·Έ λ™μž‘λ“€μ΄ μ‹€ν–‰λ˜λŠ” μˆœμ„œλŠ” λͺ…세돼 μžˆμ§€ μ•Šλ‹€. nitems μΈμžλŠ” aiocb_list λ°°μ—΄μ˜ 크기λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. aiocb_listμ—μ„œ 널 ν¬μΈν„°λŠ” λ¬΄μ‹œν•œλ‹€.

aiocb_list의 각 μ œμ–΄ 블둝 μ•ˆμ— μžˆλŠ” aio_lio_opcode ν•„λ“œκ°€ κ°œμ‹œν•  I/O λ™μž‘μ„ μ§€μ •ν•œλ‹€.

LIO_READ
읽기 λ™μž‘μ„ κ°œμ‹œν•œλ‹€. 이 μ œμ–΄ 블둝을 μ§€μ •ν•΄μ„œ aio_read(3)λ₯Ό ν˜ΈμΆœν•œ κ²ƒμ²˜λŸΌ λ™μž‘μ„ 큐에 λ„£λŠ”λ‹€.
LIO_WRITE
μ“°κΈ° λ™μž‘μ„ κ°œμ‹œν•œλ‹€. 이 μ œμ–΄ 블둝을 μ§€μ •ν•΄μ„œ aio_write(3)λ₯Ό ν˜ΈμΆœν•œ κ²ƒμ²˜λŸΌ λ™μž‘μ„ 큐에 λ„£λŠ”λ‹€.
LIO_NOP
이 μ œμ–΄ 블둝을 λ¬΄μ‹œν•œλ‹€.

각 μ œμ–΄ 블둝 μ•ˆμ˜ λ‚˜λ¨Έμ§€ ν•„λ“œλ“€μ€ aio_read(3) 및 aio_write(3)μ—μ„œμ™€ μ˜λ―Έκ°€ κ°™λ‹€. 각 μ œμ–΄ λΈ”λ‘μ˜ aio_sigevent ν•„λ“œλ₯Ό μ‚¬μš©ν•΄ κ°œλ³„ I/O λ™μž‘λ³„λ‘œ μ•Œλ¦Ό 방식을 μ§€μ •ν•  수 μžˆλ‹€. (sigevent(7) μ°Έκ³ .)

RETURN VALUE

modeκ°€ LIO_NOWAIT인 경우, λͺ¨λ“  I/O λ™μž‘μ΄ μ„±κ³΅μ μœΌλ‘œ 큐에 λ“€μ–΄κ°”μœΌλ©΄ lio_listio()κ°€ 0을 λ°˜ν™˜ν•œλ‹€. μ•„λ‹ˆλ©΄ -1을 λ°˜ν™˜ν•˜λ©° 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

modeκ°€ LIO_WAIT인 경우, λͺ¨λ“  I/O λ™μž‘μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλμ„ λ•Œ lio_listio()κ°€ 0을 λ°˜ν™˜ν•œλ‹€. μ•„λ‹ˆλ©΄ -1을 λ°˜ν™˜ν•˜λ©° 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

lio_listio()의 λ°˜ν™˜ μƒνƒœλŠ” 호좜 μžμ²΄μ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•  뿐 κ°œλ³„ λ™μž‘λ“€μ— λŒ€ν•œ μ •λ³΄λŠ” μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€. ν•œ 개 μ΄μƒμ˜ I/O λ™μž‘μ΄ μ‹€νŒ¨ν•  μˆ˜λ„ μžˆμ§€λ§Œ 그게 λ‹€λ₯Έ λ™μž‘λ“€μ˜ μ™„λ£Œλ₯Ό λ§‰μ§€λŠ” μ•ŠλŠ”λ‹€. aiocb_list의 κ°œλ³„ I/O λ™μž‘μ˜ μƒνƒœλ₯Ό aio_error(3)둜 μ•Œμ•„λ‚Ό 수 μžˆλ‹€. 그리고 λ™μž‘μ΄ μ™„λ£Œλμ„ λ•Œ κ·Έ λ°˜ν™˜ μƒνƒœλ₯Ό aio_return(3)으둜 얻을 수 μžˆλ‹€. aio_read(3)와 aio_write(3)μ—μ„œ κΈ°μˆ ν•˜λŠ” μ΄μœ λ“€λ‘œ κ°œλ³„ I/O λ™μž‘μ΄ μ‹€νŒ¨ν•  수 μžˆλ‹€.

ERRORS

lio_listio() ν•¨μˆ˜κ°€ λ‹€μŒ 이유둜 μ‹€νŒ¨ν•  수 μžˆλ‹€.

EAGAIN
μžμ› λΆ€μ‘±.
EAGAIN
nitems둜 μ§€μ •ν•œ I/O λ™μž‘ 개수 λ•Œλ¬Έμ— μ œν•œμΉ˜ AIO_MAXλ₯Ό μ΄ˆκ³Όν•˜κ²Œ λœλ‹€.
EINTR
modeκ°€ LIO_WAIT이며 I/O λ™μž‘μ΄ λͺ¨λ‘ μ™„λ£Œλ˜κΈ° 전에 μ‹œκ·Έλ„μ„ μž‘μ•˜λ‹€. signal(7) μ°Έκ³ . (비동기 I/O μ™„λ£Œ μ•Œλ¦Όμ— μ“°λŠ” μ‹œκ·Έλ„λ“€ 쀑 ν•˜λ‚˜μΌ μˆ˜λ„ μžˆλ‹€.)
EINVAL
modeκ°€ μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜, nitemsκ°€ μ œν•œμΉ˜ AIO_LISTIO_MAXλ₯Ό μ΄ˆκ³Όν•œλ‹€.
EIO
aiocb_list둜 μ§€μ •ν•œ λ™μž‘μ΄ ν•˜λ‚˜ 이상 μ‹€νŒ¨ν–ˆλ‹€. μ‘μš©μ—μ„œ aio_return(3)을 μ‚¬μš©ν•΄ 각 λ™μž‘μ˜ μƒνƒœλ₯Ό 확인할 수 μžˆλ‹€.

lio_listio()κ°€ EAGAINμ΄λ‚˜ EINTR, EIO둜 μ‹€νŒ¨ν•˜λŠ” κ²½μš°μ—λŠ” aiocb_list의 λ™μž‘λ“€ 쀑 일뢀가 κ°œμ‹œλ˜μ—ˆμ„ 수 μžˆλ‹€. lio_listio()κ°€ λ‹€λ₯Έ 이유둜 μ‹€νŒ¨ν•˜λŠ” κ²½μš°μ—λŠ” μ–΄λ–€ I/O λ™μž‘λ„ κ°œμ‹œλ˜μ§€ μ•Šμ€ 것이닀.

VERSIONS

glibc 2.1λΆ€ν„° lio_listio() ν•¨μˆ˜κ°€ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
lio_listio() μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

NOTES

μ œμ–΄ 블둝듀을 μ‚¬μš©ν•˜κΈ° 전에 0으둜 μ±„μš°λŠ” 게 μ’‹λ‹€. I/O λ™μž‘μ΄ μ§„ν–‰ 쀑인 λ™μ•ˆ μ œμ–΄ 블둝이 λ³€κ²½λ˜μ–΄μ„  μ•ˆ λœλ‹€. μ½μ–΄μ„œ μ±„μš°κ±°λ‚˜ κΈ°λ‘ν•˜λ €λŠ” 버퍼 μ˜μ—­μ— λ™μž‘ 쀑에 μ ‘κ·Όν•΄μ„œλŠ” μ•ˆ 되며, μ ‘κ·Ό μ‹œ κ·œμ •λΌ μžˆμ§€ μ•Šμ€ κ²°κ³Όκ°€ λ°œμƒν•  수 μžˆλ‹€. κ΄€λ ¨ λ©”λͺ¨λ¦¬ μ˜μ—­λ“€μ΄ μœ νš¨ν•œ μƒνƒœλ‘œ μœ μ§€λΌμ•Ό ν•œλ‹€.

λ™μ‹œμ— μ΄λ€„μ§€λŠ” I/O λ™μž‘λ“€μ— 같은 aiocb ꡬ쑰체λ₯Ό μ§€μ •ν•˜λŠ” κ²°κ³ΌλŠ” κ·œμ •λΌ μžˆμ§€ μ•Šλ‹€.

SEE ALSO

aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), aio(7)


2017-09-15

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