Rechercher une page de manuel
epoll_wait
Langue: ja
Version: 2007-04-30 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
epoll_wait, epoll_pwait - epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î I/O ¥¤¥Ù¥ó¥È¤òÂԤĽñ¼°
#include <sys/epoll.h> int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout); int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *sigmask);
ÀâÌÀ
epoll_wait() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ epfd ¤Î¥¤¥Ù¥ó¥È¤òºÇÂç timeout ¥ß¥êÉÃÂԤġ£ events ¤¬»Ø¤¹¥á¥â¥êÎΰè¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤¬³ÊǼ¤µ¤ì¤ë¡£ ºÇÂç maxevents ¸Ä¤Î¥¤¥Ù¥ó¥È¤¬ epoll_wait(2) ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ maxevents °ú¤¿ô¤Ï 0 ¤è¤êÂ礤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ timeout ¤ò -1 ¤Ë»ØÄꤹ¤ë¤È¡¢ epoll_wait(2) ¤Ï̵¸Â¤ËÂԤġ£ ¤Þ¤¿ timeout ¤ò 0 ¤Ë»ØÄꤹ¤ë¤È¡¢ epoll_wait(2) ¤Ï¥¤¥Ù¥ó¥È¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤¹¤°¤ËÊÖ¤ë (ÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë)¡£ struct epoll_event ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:typedef union epoll_data { void *ptr; int fd; __uint32_t u32; __uint64_t u64; } epoll_data_t; struct epoll_event { __uint32_t events; /* epoll ¥¤¥Ù¥ó¥È */ epoll_data_t data; /* ¥æ¡¼¥¶¥Ç¡¼¥¿ÊÑ¿ô */ };
ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤΠdata ¥á¥ó¥Ð¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬ epoll_ctl(2) (EPOLL_CTL_ADD, EPOLL_CTL_MOD) ¤Ç»ØÄꤷ¤¿¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ °ìÊý¡¢ events ¥á¥ó¥Ð¤Ë¤ÏÊÖ¤µ¤ì¤¿ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤¬³ÊǼ¤µ¤ì¤ë¡£
epoll_pwait()
epoll_wait() ¤È epoll_pwait() ¤Î´Ø·¸¤Ï¡¢ select(2) ¤È pselect(2) ¤Î´Ø·¸¤ÈƱÍͤǤ¢¤ë¡£ pselect(2) ƱÍÍ¡¢ epoll_pwait() ¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤¤¿¾õÂ֤ˤʤ뤫¡¢ ¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¡¢°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤¤ë¡£°Ê²¼¤Î epoll_pwait() ¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢
ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);¼¡¤Î¸Æ¤Ó½Ð¤·¤ò atomic ¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£
sigset_t origmask; sigprocmask(SIG_SETMASK, &sigmask, &origmask); ready = epoll_wait(epfd, &events, maxevents, timeout); sigprocmask(SIG_SETMASK, &origmask, NULL);
ÊÖ¤êÃÍ
À®¸ù¤·¤¿¾ì¹ç¡¢ epoll_wait(2) ¤ÏÍ׵ᤵ¤ì¤¿ I/O ¤ËÂФ·¤Æ½àÈ÷¤¬¤Ç¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤òÊÖ¤¹¡£ ¤Þ¤¿Í׵ᤵ¤ì¤¿ timeout ¥ß¥êÉäδ֤˥ե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ epoll_wait(2) ¤Ï -1 ¤òÊÖ¤·¡¢ errno ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£¥¨¥é¡¼
- EBADF
- epfd ¤¬Í¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£
- EFAULT
- events ¤Ç»Ø¤µ¤ì¤ë¥á¥â¥êÎΰè¤Ë½ñ¤¹þ¤ß¸¢¸Â¤Ç¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¤¡£
- EINTR
- Í׵ᤵ¤ì¤¿¤É¤Î¥¤¥Ù¥ó¥È¤âȯÀ¸¤»¤º¡¢¤«¤Ä timeout ¤Î´ü¸Â¤¬ÀÚ¤ì¤ëÁ°¤Ë¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£
- EINVAL
- epfd ¤¬ epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ ¤Þ¤¿¤Ï maxevents ¤¬ 0 °Ê²¼¤Ç¤¢¤ë¡£
¥Ð¡¼¥¸¥ç¥ó
epoll_pwait() ¤Ï¥«¡¼¥Í¥ë 2.6.19 ¤Ç Linux ¤ËÄɲ䵤줿¡£epoll_pwait() ¤Î¥µ¥Ý¡¼¥È¤Ï glibc 2.6 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£
½àµò
epoll_wait(2) ¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£´ØÏ¢¹àÌÜ
epoll_create(2), epoll_ctl(2), epoll(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre