.\" Updated 2007-10-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20
.\"
-.\" WORD: timer ¥¿¥¤¥Þ¡¼
+.\" WORD: timer ã\82¿ã\82¤ã\83\9eã\83¼
.\" WORD: jiffies jiffy
.\"
.TH GETITIMER 2 2009-03-15 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-getitimer, setitimer \- ¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÎÃͤò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë
-.SH ½ñ¼°
+.SH 名前
+getitimer, setitimer \- インターバル・タイマーの値を取得または設定する
+.SH 書式
.nf
.B #include <sys/time.h>
.sp
.BI "int setitimer(int " which ", const struct itimerval *" new_value ,
.BI " struct itimerval *" old_value );
.fi
-.SH ÀâÌÀ
+.SH 説明
.\"O The system provides each process with three interval timers, each decrementing
.\"O in a distinct time domain.
.\"O When any timer expires, a signal is sent to the
.\"O process, and the timer (potentially) restarts.
-¥·¥¹¥Æ¥à¤Ï 1 ¸Ä¤Î¥×¥í¥»¥¹¤Ë¤Ä¤ 3 ¸Ä¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤òÄ󶡤¹¤ë¡£
-¤½¤ì¤¾¤ì¤Î¥¿¥¤¥Þ¡¼¤ÏÊÌ¡¹¤Î»þ´ÖÎΰè¤Ç¸º¾¯¤¹¤ë¡£
-¤É¤Î¥¿¥¤¥Þ¡¼¤âËþλ¤¹¤ë¤È¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢
-¥¿¥¤¥Þ¡¼¤Ï (ÀßÄê¤Ë¤è¤Ã¤Æ¤Ï) ºÆ¤Ó³«»Ï¤µ¤ì¤ë¡£
+システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。
+それぞれのタイマーは別々の時間領域で減少する。
+どのタイマーも満了するとプロセスにシグナルが送られ、
+タイマーは (設定によっては) 再び開始される。
.TP 1.5i
.\"O .B ITIMER_REAL
.\"O decrements in real time, and delivers
.\"O .B SIGALRM
.\"O upon expiration.
.B ITIMER_REAL
-¼Â»þ´Ö (real time) ¤Ç¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È
+実時間 (real time) で減少し、満了すると
.B SIGALRM
-¤¬Á÷¤é¤ì¤ë¡£
+が送られる。
.TP
.\"O .B ITIMER_VIRTUAL
.\"O decrements only when the process is executing, and delivers
.\"O .B SIGVTALRM
.\"O upon expiration.
.B ITIMER_VIRTUAL
-¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë´Ö¤Î¤ß¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È
+プロセスが実行されている間のみ減少し、満了すると
.B SIGVTALRM
-¤¬Á÷¤é¤ì¤ë¡£
+が送られる。
.TP
.\"O .B ITIMER_PROF
.\"O decrements both when the process executes and when the system is executing
.\"O .B SIGPROF
.\"O is delivered upon expiration.
.B ITIMER_PROF
-¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Æ¡¢
-¤«¤Ä¥·¥¹¥Æ¥à¤¬¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë½èÍý¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë´Ö¤Ë¸º¾¯¤¹¤ë¡£
-¿¤¯¤Î¾ì¹ç¡¢¤³¤Î¥¿¥¤¥Þ¡¼¤Ï
+プロセスが実行されていて、
+かつシステムがそのプロセスのために処理を行なっている間に減少する。
+多くの場合、このタイマーは
.B ITIMER_VIRTUAL
-¤ÈÁȤ߹ç¤ï¤µ¤ì¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Ç
-¤É¤ì¤À¤±¤Î»þ´Ö¤ò²á¤´¤·¤¿¤«¤ò¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
-Ëþλ¤¹¤ë¤È
+と組み合わされて、アプリケーションがカーネル空間とユーザー空間で
+どれだけの時間を過ごしたかをプロファイルするのに使用される。
+満了すると
.B SIGPROF
-¤¬Á÷¤é¤ì¤ë¡£
+が送られる。
.LP
.\"O Timer values are defined by the following structures:
-¥¿¥¤¥Þ¡¼¤ÎÃͤϰʲ¼¤Î¹½Â¤ÂΤˤè¤Ã¤ÆÄêµÁ¤µ¤ì¤ë:
+タイマーの値は以下の構造体によって定義される:
.PD 0
.in +4n
.nf
.\"O or
.\"O .BR ITIMER_PROF ).
.BR getitimer ()
-´Ø¿ô¤Ï¡¢
+関数は、
.I which
-¤Ç»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¿ã\82¤ã\83\9eã\83¼
.RB ( ITIMER_REAL ,
.BR ITIMER_VIRTUAL ,
.B ITIMER_PROF
-¤Î¤É¤ì¤«) ¤Î¸½ºß¤ÎÀßÄê¤ò¡¢
+のどれか) の現在の設定を、
.I curr_value
-¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£
+で指定された構造体に格納する。
.\"O The element
.\"O .I it_value
.\"O is set to the amount of time remaining on the timer, or zero if the timer
.\"O .I it_interval
.\"O is set to the reset value.
.I it_value
-Í×ÁǤˤϥ¿¥¤¥Þ¡¼¤Î»Ä¤ê»þ´Ö¤¬ÀßÄꤵ¤ì¤ë¡£¥¿¥¤¥Þ¡¼¤¬¥ª¥Õ¤Î¾ì¹ç¤Ï
-¥¼¥í¤¬ÀßÄꤵ¤ì¤ë¡£Æ±ÍͤË
+要素にはタイマーの残り時間が設定される。タイマーがオフの場合は
+ゼロが設定される。同様に
.I it_interval
-¤Ë¤Ï½é´üÃͤ¬ÀßÄꤵ¤ì¤ë¡£
+には初期値が設定される。
.\"O The function
.\"O .BR setitimer ()
.\"O sets the specified timer to the value in
.\"O .IR new_value .
.BR setitimer ()
-´Ø¿ô¤Ï»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼¤Ë
+関数は指定されたタイマーに
.I new_value
-¤ÎÃͤòÀßÄꤹ¤ë¡£
+の値を設定する。
.\"O If
.\"O .I old_value
.\"O is non-NULL, the old value of the timer is stored there.
.I old_value
-¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Î¸Å¤¤Ãͤ¬
+が NULL 以外の場合、タイマーの古い値が
.I old_value
-¤Ë³ÊǼ¤µ¤ì¤ë¡£
+に格納される。
.LP
.\"O Timers decrement from
.\"O .I it_value
.\"O to zero, generate a signal, and reset to
.\"O .IR it_interval .
-¥¿¥¤¥Þ¡¼¤Ï
+タイマーは
.I it_value
-¤«¤é¥¼¥í¤Ø¸þ¤±¤Æ¸º¤Ã¤Æ¤¤¤¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤·¡¢
+からゼロへ向けて減っていき、シグナルを生成し、
.I it_interval
-¤Ë½é´ü²½¤µ¤ì¤ë¡£
+に初期化される。
.\"O A timer which is set to zero
.\"O .RI ( it_value
.\"O is zero or the timer expires and
.\"O .I it_interval
.\"O is zero) stops.
-¥¿¥¤¥Þ¡¼¤¬¥¼¥í¤ËÀßÄꤵ¤ì¤¿¾ì¹ç
+タイマーがゼロに設定された場合
.RI ( it_value
-¤¬¥¼¥í¤«¡¢¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿»þ¤Ë
+がゼロか、タイマーが満了した時に
.I it_interval
-¤¬¥¼¥í¤Î¾ì¹ç) ¤ÏÄä»ß¤¹¤ë¡£
+がゼロの場合) は停止する。
.LP
.\"O Both
.\"O .I tv_sec
.\"O and
.\"O .I tv_usec
.\"O are significant in determining the duration of a timer.
-¥¿¥¤¥Þ¡¼¤Î´ü´Ö¤Ï
+タイマーの期間は
.I tv_sec
-¤È
+と
.I tv_usec
-¤ÎξÊý¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£
+の両方により決定される。
.LP
.\"O Timers will never expire before the requested time,
.\"O but may expire some (short) time afterward, which depends
.\"O the signal will be delivered immediately when generated.
.\"O Otherwise the
.\"O delivery will be offset by a small time dependent on the system loading.
-Í׵ᤷ¤¿»þ´Ö¤¬¤¯¤ëÁ°¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢
-µÕ¤Ë¤¢¤ë (û¤¤) »þ´Ö¤À¤±Ëþ뤬ÃÙ¤ì¤ë¤³¤È¤Ï¤¢¤ë¡£
-¤É¤ì¤À¤±ÃÙ¤ì¤ë¤«¤Ï¥·¥¹¥Æ¥à¤Î»þ´Öʬ²òǽ¤È¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë°Í¸¤¹¤ë
+要求した時間がくる前にタイマーが満了することはないが、
+逆にある (短い) 時間だけ満了が遅れることはある。
+どれだけ遅れるかはシステムの時間分解能とシステムの負荷に依存する
.RB ( time (7)
-»²¾È; ⤷¡¢¥Ð¥°¤Î¹à¤â»²¾È¤Î¤³¤È)¡£
-¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤È¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¡¢¥¿¥¤¥Þ¡¼¤Ï½é´ü²½¤µ¤ì¤ë¡£
-¥×¥í¥»¥¹¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê»þ
+参照; 但し、バグの項も参照のこと)。
+タイマーが満了するとシグナルが生成され、タイマーは初期化される。
+プロセスがアクティブな時
.RB ( ITIMER_VIRTUAL
-¤Î¾ì¹ç¤Ë¤Ï¾ï¤Ë¤½¤¦¤Ç¤¢¤ë) ¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿¾ì¹ç¡¢À¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï
-¤¹¤°¤ËÇÛÁ÷¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë¤è¤ê¾¯¤·¤Î»þ´Ö¤À¤±
-ÃÙ¤ì¤ÆÇÛÁ÷¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
+の場合には常にそうである) にタイマーが満了した場合、生成されたシグナルは
+すぐに配送される。それ以外の場合は、システムの負荷により少しの時間だけ
+遅れて配送される。
+.SH 返り値
.\"O On success, zero is returned.
.\"O On error, \-1 is returned, and
.\"O .I errno
.\"O is set appropriately.
-À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ
+成功した場合はゼロが返る。エラーの場合は \-1 が返り、
.I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+が適切に設定される。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EFAULT
.\"O .IR new_value ,
.IR new_value ,
.IR old_value ,
.I curr_value
-¤¬Í¸ú¤Ê¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤¤¡£
+が有効なポインターでない。
.TP
.B EINVAL
.\"O .I which
.\"O .I new_value
.\"O contains a value outside the range 0 to 999999.
.I which
-¤¬
+が
.BR ITIMER_REAL ,
.BR ITIMER_VIRTUAL ,
.B ITIMER_PROF
-¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£
-¤Þ¤¿¤Ï (Linux 2.6.22 °Ê¹ß¤Ç)
+のどれでもない。
+または (Linux 2.6.22 以降で)
.I new_value
-¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤÎ
+で指定された構造体の
.I tv_usec
-¥Õ¥£¡¼¥ë¥É¤Î°ì¤Ä¤¬ 0 °Ê¾å 999999 °Ê²¼¤ÎÈϰϤËÆþ¤é¤Ê¤¤ÃͤǤ¢¤ë¡£
+フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。
.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
.\"O POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).
-POSIX.1-2001, SVr4, 4.4BSD (¤³¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç»Ï¤á¤Æ¸½¤ï¤ì¤¿).
+POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).
.\"O POSIX.1-2008 marks
.\"O .BR getitimer ()
.\"O and
.\"O .RB ( timer_gettime (2),
.\"O .BR timer_settime (2),
.\"O etc.) instead.
-POSIX.1-2008 ¤Ç¤Ï¡¢
+POSIX.1-2008 では、
.BR getitimer ()
-¤È
+と
.BR setitimer ()
-¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢
-Âå¤ï¤ê¤Ë POSIX ¥¿¥¤¥Þ¡¼ API
+は廃止予定とされており、
+代ã\82\8fã\82\8aã\81« POSIX ã\82¿ã\82¤ã\83\9eã\83¼ API
.RB ( timer_gettime (2),
.BR timer_settime (2)
-¤Ê¤É) ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£
+など) を使うことが推奨されている。
.\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
.\"O A child created via
.\"O .BR fork (2)
.\"O does not inherit its parent's interval timers.
.\"O Interval timers are preserved across an
.\"O .BR execve (2).
.BR fork (2)
-¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢
-¿Æ¥×¥í¥»¥¹¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ò·Ñ¾µ¤·¤Ê¤¤¡£
+で作成された子プロセスは、
+親プロセスのインターバル・タイマーを継承しない。
.BR execve (2)
-¤ÎÁ°¸å¤Ç¤Ï¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÏÊݸ¤µ¤ì¤ë¡£
+の前後ではインターバル・タイマーは保存される。
.\"O POSIX.1 leaves the
.\"O interaction between
.\"O and
.\"O .BR usleep (3)
.\"O unspecified.
-POSIX.1 ¤Ç¤Ï¡¢
+POSIX.1 では、
.BR setitimer ()
-¤È¡¢
+と、
.BR alarm (2),
.BR sleep (3),
.BR usleep (3)
-¤È¤¤¤¦ 3 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤ÎÁê¸ß¤Î±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£
+という 3 つのインタフェースとの相互の影響については規定していない。
.\"O .SH BUGS
-.SH ¥Ð¥°
+.SH ã\83\90ã\82°
.\"O The generation and delivery of a signal are distinct, and
.\"O only one instance of each of the signals listed above may be pending
.\"O for a process.
.\"O timer may expire before the signal from a previous expiration
.\"O has been delivered.
.\"O The second signal in such an event will be lost.
-¥·¥°¥Ê¥ë¤ÎÀ¸À®¤ÈÇÛÁ÷¤ÏÊ̸ĤΤâ¤Î¤Ç¤¢¤ê¡¢
-Á°½Ò¤Î¥·¥°¥Ê¥ë¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ°ì¤Ä¤À¤±¤¬¥×¥í¥»¥¹¤Î¤¿¤á¤Ë
-ÂÔµ¡¤¹¤ë¡£
-Èó¾ï¤Ë½Å¤¤Éé²Ù¤Î²¼¤Ç¤Ï¡¢
+シグナルの生成と配送は別個のものであり、
+前述のシグナルのそれぞれについて一つだけがプロセスのために
+待機する。
+非常に重い負荷の下では、
.B ITIMER_REAL
-¥¿¥¤¥Þ¡¼¤Ç¤Ï¡¢»þ´ÖÀÚ¤ì¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿°ì¤ÄÁ°¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ëÁ°¤Ë¡¢
-¼¡¤Î»þ´ÖÀڤ줬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£
-¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢ 2 ¸Ä¤á¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¤Ï¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£
+タイマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、
+次の時間切れが起こる場合がある。
+そのような場合、 2 個めのイベントに対するシグナルは失われてしまう。
.\"O On Linux kernels before 2.6.16, timer values are represented in jiffies.
-¥Ð¡¼¥¸¥ç¥ó 2.6.16 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢
-¥¿¥¤¥Þ¡¼¤ÎÃÍ¤Ï jiffy ¤Çɽ¸½¤µ¤ì¤ë¡£
+バージョン 2.6.16 より前の Linux カーネルでは、
+タイマーの値は jiffy で表現される。
.\"O If a request is made set a timer with a value whose jiffies
.\"O representation exceeds
.\"O .B MAX_SEC_IN_JIFFIES
.\"O the default jiffy is 0.004 seconds),
.\"O this means that the ceiling value for a timer is
.\"O approximately 99.42 days.
-Í׵᤬ jiffy ɽ¸½¤Ç
+要求が jiffy 表現で
.RI ( include/linux/jiffies.h
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)
+で定義されている)
.B MAX_SEC_IN_JIFFIES
-¤ò±Û¤¨¤ëÃͤò¥¿¥¤¥Þ¡¼¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤â¤Î¤Î¾ì¹ç¡¢
-¥¿¥¤¥Þ¡¼¤Ï°ÅÌۤˤ³¤Î¾å¸ÂÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£
-Linux/i386 ¤Î¾ì¹ç (Linux 2.6.13 °Ê¹ß¤Ç¤Ï jiffy ¤Ï 0.004 ÉÃ) ¤Î¾ì¹ç¡¢
-¤³¤ì¤Ï¥¿¥¤¥Þ¡¼¤Î¾å¸ÂÃͤ¬¤ª¤è¤½ 99.42 Æü¤Ë¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+を越える値をタイマーに設定しようとするものの場合、
+タイマーは暗黙にこの上限値に切り詰められる。
+Linux/i386 の場合 (Linux 2.6.13 以降では jiffy は 0.004 秒) の場合、
+これはタイマーの上限値がおよそ 99.42 日になることを意味する。
.\"O Since Linux 2.6.16,
.\"O the kernel uses a different internal representation for times,
.\"O and this ceiling is removed.
-Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï»þ´Ö¤Ë´Ø¤¹¤ëÆâÉôɽ¸½¤È¤·¤Æ
-°Û¤Ê¤ëɽ¸½¤ò»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¾å¸Â¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£
+Linux 2.6.16 以降では、カーネルは時間に関する内部表現として
+異なる表現を使うようになっており、この上限はなくなった。
.\"O On certain systems (including i386),
.\"O Linux kernels before version 2.6.12 have a bug which will produce
.\"O premature timer expirations of up to one jiffy under some circumstances.
.\"O This bug is fixed in kernel 2.6.12.
-(i386 ¤ò´Þ¤à) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.6.12 °ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ï
-¤¢¤ë¼ï¤Î¾õ¶·¤Ç¤Ï 1 jiffy Á᤯¥¿¥¤¥Þ¡¼¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£
-¤³¤Î¥Ð¥°¤Ï¥«¡¼¥Í¥ë 2.6.12 ¤Ç½¤Àµ¤µ¤ì¤¿¡£
+(i386 を含む) いくつかのシステムでは、
+バージョン 2.6.12 以前の Linux カーネルは
+ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあった。
+このバグはカーネル 2.6.12 で修正された。
.\" 4 Jul 2005: It looks like this bug may remain in 2.4.x.
.\" http://lkml.org/lkml/2005/7/1/165
.\"O However, in kernels up to and including 2.6.21,
.\"O Linux does not give an error, but instead silently
.\"O adjusts the corresponding seconds value for the timer.
-POSIX.1-2001 ¤Ç¤Ï
+POSIX.1-2001 では
.BR setitimer ()
-¤Ï
+は
.I tv_usec
-¤ÎÃͤ¬ 0 ¤«¤é 999999 ¤ÎÈϰϳ°¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤Ù¤¤À¤È¤·¤Æ¤¤¤ë¡£
-¤·¤«¤·¡¢2.6.21 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Î Linux ¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤é¤º¡¢
-Âбþ¤¹¤ëÉÿô¤Îʬ¤À¤±¤½¤Î¥¿¥¤¥Þ¡¼¤ÎÉäÎÃͤ¬°ÅÌÛ¤ËÄ´À°¤µ¤ì¤ë¡£
+の値が 0 から 999999 の範囲外である場合には失敗するべきだとしている。
+しかし、2.6.21 以前のカーネルの Linux ではエラーにならず、
+対応する秒数の分だけそのタイマーの秒の値が暗黙に調整される。
.\"O From kernel 2.6.22 onward,
.\"O this nonconformance has been repaired:
.\"O an improper
.\"O value results in an
.\"O .B EINVAL
.\"O error.
-¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Ç¤Ï¡¢¤³¤Îɸ½àÈó½àµò¤ÎÆ°ºî¤Ï½¤Àµ¤µ¤ì¡¢
+カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、
.I tv_usec
-¤ÎÃͤ¬ÉÔŬÀڤʾì¹ç¤Ë¤Ï
+の値が不適切な場合には
.B EINVAL
-¥¨¥é¡¼¤È¤Ê¤ë¡£
+エラーとなる。
.\" Bugzilla report 25 Apr 2006:
.\" http://bugzilla.kernel.org/show_bug.cgi?id=6443
.\" "setitimer() should reject noncanonical arguments"
.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR gettimeofday (2),
.BR sigaction (2),
.BR signal (2),