gettimeofday

Autres langues

Langue: ja

Version: 2004-05-27 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

gettimeofday, settimeofday - »þ¹ï¤ò¼èÆÀ/ÀßÄꤹ¤ë

½ñ¼°

#include <sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);
int settimeofday(const struct timeval *tv , const struct timezone *tz);

ÀâÌÀ

´Ø¿ô gettimeofday() ¤È settimeofday() ¤Ï»þ¹ï¤È¥¿¥¤¥à¥¾¡¼¥ó¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ tv °ú¤­¿ô¤Ï struct timeval ¤Ç¤¢¤ë (<sys/time.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë):

struct timeval {

    time_t      tv_sec;     /* ÉÃ */

    suseconds_t tv_usec;    /* ¥Þ¥¤¥¯¥íÉà */

};

¤³¤ì¤Ë¤è¤êµª¸µ (the Epoch: time(2) ¤ò»²¾È) ¤«¤é¤ÎÉäȥޥ¤¥¯¥íÉ䬼èÆÀ¤Ç¤­¤ë¡£ tz °ú¤­¿ô¤Ï struct timezone ¤Ç¤¢¤ë:


struct timezone {

    int tz_minuteswest;     /* ¥°¥ê¥Ë¥Ã¥¸É¸½à»þ¤È¤Îº¹ (À¾Êý¤Ëʬñ°Ì) */

    int tz_dsttime;         /* ²Æ»þ´ÖÄ´À°¤Î·¿ */

};

tv ¤ä tz ¤¬ NULL ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¹½Â¤ÂΤÎÀßÄê/¼èÆÀ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£

timezone ¹½Â¤ÂΤò»È¤¦¤Î¤Ï»þÂåÃÙ¤ì (obsolete) ¤Ç¤¢¤ë: tz °ú¤­¿ô¤ÏÄ̾ï¤Ï NULL ¤Ë»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ tz_dsttime ¥Õ¥£¡¼¥ë¥É¤Ï Linux ¤Ç¤Ï°ìÀڻȤï¤ì¤Æ¤³¤Ê¤«¤Ã¤¿; libc ¤ä glibc ¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤³¤Ê¤«¤Ã¤¿¤·¡¢ ¤³¤ì¤«¤é¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹Ãæ¤ÎÀë¸À°Ê³°¤Ç¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬Â¸ºß¤¹¤ë¤Î¤ÏÁ´¤Æ¥Ð¥°¤Ç¤¢¤ë¡£ ¤è¤Ã¤Æ¤³¤ì°Ê¹ß¤Îµ­½Ò¤Ï¡¢½ã¿è¤ËÎò»ËŪ¶½Ì£¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ç¤¢¤ë¡£

tz_dsttime ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï (°Ê²¼¤ÇÍ¿¤¨¤é¤ì¤ë¤è¤¦¤Ê) ¥·¥ó¥Ü¥ëÄê¿ô¤¬³ÊǼ¤µ¤ì¤ë¡£ ¤³¤ì¤Ï°ìǯ¤Î¤¦¤Á¤Ç¤¤¤Ä²Æ»þ´Ö (Daylight Savings Time) ¤ò¼Â»Ü¤¹¤ë¤«¤ò¼¨¤·¤Æ¤¤¤ë (Ãí°Õ: ¤½¤ÎÃͤÏǯ´Ö¤òÄ̤·¤¿Äê¿ô¤Ç¤¢¤ë: ²Æ»þ´Ö¤¬¼Â»ÜÃæ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ ¥¢¥ë¥´¥ê¥º¥à¤òÁªÂò¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë)¡£ ²Æ»þ´Ö¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:

DST_NONE /* ²Æ»þ´Ö¤òºÎÍѤ·¤Æ¤¤¤Ê¤¤ */
DST_USA /* ¥¢¥á¥ê¥«¹ç½°¹ñ¼°²Æ»þ´Ö */
DST_AUST /* ¥ª¡¼¥¹¥È¥é¥ê¥¢¼°²Æ»þ´Ö */
DST_WET /* À¾¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */
DST_MET /* Ãæ±û¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */
DST_EET /* Åì¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */
DST_CAN /* ¥«¥Ê¥À */
DST_GB /* ¥°¥ì¡¼¥È¥Ö¥ê¥Æ¥ó¤ª¤è¤Ó¥¢¥¤¥ë¥é¥ó¥É */
DST_RUM /* ¥ë¡¼¥Þ¥Ë¥¢ */
DST_TUR /* ¥È¥ë¥³ */
DST_AUSTALT /* 1986ǯ¤Ë°Ü¹Ô¤µ¤ì¤¿¥ª¡¼¥¹¥È¥é¥ê¥¢¼° */

ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢²Æ»þ´Ö¤¬¤É¤Î´ü´Ö¤Ë¼Â»Ü¤µ¤ì¤ë¤«¤ò ¹ñ¤´¤È¤Î´Êñ¤Ê¥¢¥ë¥´¥ê¥º¥à¤ÇƳ¤¯¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤¬È½ÌÀ¤·¤¿¡£ ¼ÂºÝ¡¢²Æ»þ´Ö¤Î´ü´Ö¤Ïͽ¬ÉÔ²Äǽ¤ÊÀ¯¼£Åª·èÄê¤Ç·è¤Þ¤ë¡£ ¤½¤Î¤¿¤á¤³¤ÎÊýË¡¤Ç¥¿¥¤¥à¡¦¥¾¡¼¥ó¤òɽ¤¹¤³¤È¤ÏÃÇÇ°¤µ¤ì¤¿¡£ Linux ¤Ë¤ª¤¤¤Æ settimeofday() ¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ï¡¢ tz_dsttime ¥Õ¥£¡¼¥ë¥É¤ò 0 ¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£

Linux ¤Ç¤Ï¡¢ settimeofday() ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë´ØÏ¢¤·¤Æ¡¢ÆÈÆäΡ֥¯¥í¥Ã¥¯¤Î¥º¥ì (warp clock)¡×¤¬Â¸ºß¤¹¤ë¡£ ¤³¤ì¤Ï (¥Ö¡¼¥È¸å¤Î) ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç tz °ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¯¡¢ tv °ú¤­¿ô¤¬ NULL ¤Ç tz_minuteswest ¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ëµ¯¤³¤ë¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ settimeofday() ¤Ï CMOS ¥¯¥í¥Ã¥¯¤¬ÃÏÊý»þ (local time) ¤Ç¤¢¤ê¡¢ UTC ¥·¥¹¥Æ¥à»þ´Ö¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢ tz_minuteswest ¤Îʬ¤À¤±Áý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¡£ µ¿¤¤¤â¤Ê¤¯¡¢¤³¤Îµ¡¹½¤ò»È¤¦¤³¤È¤ÏÎɤ¤¹Í¤¨¤Ç¤Ï¤Ê¤¤¡£

struct timeval ¤òÁàºî¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë:


#define timerisset(tvp)\


((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp)\ ((tvp)->tv_sec cmp (uvp)->tv_sec ||\ (tvp)->tv_sec == (uvp)->tv_sec &&\ (tvp)->tv_usec cmp (uvp)->tv_usec)
#define timerclear(tvp)\
((tvp)->tv_sec = (tvp)->tv_usec = 0)

ÊÖ¤êÃÍ

gettimeofday() ¤È settimeofday() ¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹ (¤³¤Î¾ì¹ç¤Ï errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£

¥¨¥é¡¼

EFAULT
tv ¤« tz ¤Î»Ø¤¹Îΰè¤Î¤É¤Á¤é¤«¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£
EINVAL
¥¿¥¤¥à¥¾¡¼¥ó (¤Þ¤¿¤Ï¾¤Î²¿¤«) ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
EPERM
¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë settimeofday() ¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ Linux ¤Ç¤Ï CAP_SYS_TIME ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£

½àµò

SVr4, 4.3BSD ¤Ë½àµò¤¹¤ë¡£ POSIX.1-2001 ¤Ï gettimeofday() ¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤ë¤¬¡¢ settimeofday() ¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£

Ãí°Õ

settimeofday() ¤Î¥×¥í¥È¥¿¥¤¥×¤È timercmp, timerisset, timerclear, timeradd, timersub ¤ÎÄêµÁ¤Ï (glibc 2.2.2 °Ê¹ß¤Ï) _BSD_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ßÍøÍѲÄǽ¤È¤Ê¤ë¡£

ÀÎ¤Ï struct timeval ¤Î¥Õ¥£¡¼¥ë¥É¤Ï long ·¿¤Ç¤¢¤Ã¤¿¡£

´ØÏ¢¹àÌÜ

date(1), adjtimex(2), time(2), ctime(3), ftime(3), capabilities(7), time(7)