nanosleep

Autres langues

Langue: ja

Version: 2004-10-24 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

nanosleep - »ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¼Â¹Ô¤òÄä»ß¤¹¤ë

½ñ¼°

#define _POSIX_C_SOURCE 199309 #include <time.h>

int nanosleep(const struct timespec *req, struct timespec *rem);  

ÀâÌÀ

nanosleep() ¤Ï¡¢¾¯¤Ê¤¯¤È¤â *req ¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÃٱ䤵¤»¤ë¡£ ¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ »ØÄꤵ¤ì¤¿»þ´Ö¤Ë㤷¤Ê¤¯¤Æ¤âÊ֤뤳¤È¤¬¤¢¤ë¡£ ¤³¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤·¡¢errno ¤Ë EINTR ¤òÀßÄꤷ¡¢¤µ¤é¤Ë rem ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð rem ¤¬»Ø¤·¤Æ¤¤¤ë¹½Â¤ÂΤ˻Ĥê¤Î»þ´Ö¤ò³ÊǼ¤¹¤ë¡£ *rem ¤ÎÃͤò»È¤¦¤È¡¢ nanosleep() ¤ò¤â¤¦°ìÅٸƤӽФ·¤Æ¡¢»ØÄꤷ¤¿»þ´Ö¤ÎÄä»ß¤ò ´°Î»¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¥Ê¥ÎÉùï¤ß¤Î»þ´Ö´Ö³Ö¤ò»ØÄꤹ¤ë¤Î¤Ë timespec ¹½Â¤ÂΤ¬»ÈÍѤµ¤ì¤ë¡£¤³¤Î¹½Â¤ÂÎ¤Ï <time.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê·Á¼°¤Ç¤¢¤ë:


    time_t tv_sec;        /* ÉÃ */

    long   tv_nsec;       /* ¥Ê¥ÎÉà */

};

¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤ÎÃÍ¤Ï 0 ¤«¤é 999999999 ¤ÎÈϰϤˤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

sleep(3) ¤ä usleep(3) ¤ËÈæ¤Ù¤ë¤È nanosleep() ¤Ë¤Ï°Ê²¼¤ÎÍøÅÀ¤¬¤¢¤ë:

*
¥·¥°¥Ê¥ë¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£
*
POSIX ¤Ë¤è¤Ã¤Æɸ½à²½¤µ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë¡£
*
¤è¤ê¹â¤¤»þ´Öʬ²òǽ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£
*
¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¸å¤Ë¡¢¤µ¤é¤ËÄä»ß¤ò³¤±¤ë¤³¤È¤¬´Êñ¤Ç¤¢¤ë¡£

ÊÖ¤êÃÍ

Í׵ᤵ¤ì¤¿´ü´Ö¤ÎÄä»ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ nanosleep() ¤Ï 0 ¤òÊÖ¤¹¡£¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¤ê¡¢ ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢-1 ¤òÊÖ¤·¡¢ errno ¤Ë¥¨¥é¡¼ÆâÍƤò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£

¥¨¥é¡¼

EFAULT
¥æ¡¼¥¶¶õ´Ö¤«¤é¤Î¾ðÊó¤Î¥³¥Ô¡¼¤ÇÌäÂ꤬¤¢¤Ã¤¿¡£
EINTR
¶Ø»ß (block) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤¬¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤Æ¡¢ Ää»ß¤¬ÃæÃǤµ¤ì¤¿¡£ ¥×¥í¥»¥¹¤¬´Êñ¤Ë nanosleep() ¤òºÆ¤Ó¸Æ¤Ó½Ð¤·¤ÆÄä»ß¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢ »Ä¤ê¤ÎÄä»ß»þ´Ö¤¬ *rem ¤Ë³ÊǼ¤µ¤ì¤ë¡£
EINVAL
tv_nsec ¥Õ¥£¡¼¥ë¥É¤ÎÃͤ¬ 0 ¤«¤é 999999999 ¤Þ¤Ç¤ÎÈϰϤˤʤ«¤Ã¤¿¤«¡¢ tv_sec ¤¬Éé¤Ç¤¢¤Ã¤¿¡£

½àµò

POSIX.1-2001.

¥Ð¥°

¸½ºß¤Î nanosleep() ¤Î¼ÂÁõ¤ÏÉáÄ̤Υ«¡¼¥Í¥ë¤Î¥¿¥¤¥Þµ¡¹½¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£¥«¡¼¥Í¥ë¤Î¥¿¥¤¥Þµ¡¹½¤Ï 1/HZ ÉäÎʬ²òǽ¤ò¤â¤Ã¤Æ¤¤¤ë (time(7) »²¾È)¡£¤³¤Î¤¿¤á¡¢ nanosleep() ¤Ï¾¯¤Ê¤¯¤È¤â»ØÄꤵ¤ì¤¿»þ´Öɬ¤ºÄä»ß¤¹¤ë¤¬¡¢¥×¥í¥»¥¹¤¬ºÆ¤Ó¼Â¹Ô¤Ç¤­¤ë ¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤Ë»ØÄꤵ¤ì¤¿»þ´Ö¤è¤êºÇÂç 10 ms ;·×¤Ë¤«¤«¤ë¡£Æ±¤¸Íýͳ¤Ç¡¢ ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë *rem ¤ËÆþ¤ì¤ÆÊÖ¤µ¤ì¤ëÃͤϡ¢ÄÌ¾ï ¼ÂºÝ¤ÎÃͤè¤ê¾®¤µ¤¯¤Ê¤¤ºÇ¾®¤Î 1/HZ ÉäÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£

°ÊÁ°¤ÎÆ°ºî

(Î㤨¤Ð¡¢»þ´Ö¤¬½ÅÍפʰÕÌ£¤ò»ý¤Ä¥Ï¡¼¥É¥¦¥§¥¢¤òÀ©¸æ¤¹¤ë¾ì¹ç¤Ê¤É) ¤è¤êÀµ³Î¤ÊÄä»ß¤òɬÍפȤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂбþ¤¹¤ë¤¿¤á¤Ë¡¢ nanosleep() ¤Ï¡¢¥Þ¥¤¥¯¥íÉÃÀºÅ٤Υӥ¸¡¼¡¦¥¦¥§¥¤¥È¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ 2 ms °Ê²¼¤ÎÄä»ß¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤¿¡£ ⤷¡¢¤³¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ SCHED_FIFO ¤ä SCHED_RR ¤È¤¤¤Ã¤¿¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¸µ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë ɬÍפ¬¤¢¤Ã¤¿¡£ ¤³¤ÎÆÃÊ̤ʳÈÄ¥¤Ï¥«¡¼¥Í¥ë 2.5.39 ¤Çºï½ü¤µ¤ì¤¿¡£¤·¤¿¤¬¤Ã¤Æ¡¢ ¸½ºß¤Î 2.4 ·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤³¤Îµ¡Ç½¤¬Â¸ºß¤¹¤ë¤¬¡¢ 2.6·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤Ê¤¤¡£

Linux 2.4 ¤Ç¤Ï¡¢ nanosleep() ¤¬ (SIGTSTP ¤Ê¤É¤Î) ¥·¥°¥Ê¥ë¤Ë¤è¤êÄä»ß¤µ¤ì¤¿¾ì¹ç¡¢ nanosleep() ¤Î¸Æ¤Ó½Ð¤·¤Ï SIGCONT ¥·¥°¥Ê¥ë¤Ë¤è¤ë¥×¥í¥»¥¹¤ÎºÆ³«¸å¤Ë EINTR ¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î¸å¤ÇºÆ¥¹¥¿¡¼¥È¤µ¤ì¤¿¾ì¹ç¡¢ ¥×¥í¥»¥¹¤¬Ää»ß¾õÂ֤ˤ¢¤ë´Ö¤Ë·Ð²á¤·¤¿»þ´Ö¤Ï Ää»ß´ü´Ö¤È¤·¤Æ¥«¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤¤¡×¡£

´ØÏ¢¹àÌÜ

sched_setscheduler(2), timer_create(2), sleep(3), usleep(3), feature_test_macros(7), time(7)