OSDN Git Service

(split) LDP: Restore and add Copyrights for draft pages
[linuxjm/LDP_man-pages.git] / draft / man2 / getitimer.2
index ca95ec5..7072a90 100644 (file)
@@ -1,10 +1,20 @@
 .\" Copyright 7/93 by Darren Senn <sinster@scintilla.santa-clara.ca.us>
 .\" Based on a similar page Copyright 1992 by Rick Faith
+.\"
+.\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE)
 .\" May be freely distributed
+.\" %%%LICENSE_END
+.\"
 .\" Modified Tue Oct 22 00:22:35 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
 .\" 2005-04-06 mtk, Matthias Lang <matthias@corelatus.se>
 .\"    Noted MAX_SEC_IN_JIFFIES ceiling
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
 .\"         all rights reserved.
 .\" Translated 1997-02-22, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
 .\" Updated 2006-07-23, Kentaro Shirakata <argrath@ub32.org>
 .\" Updated 2007-10-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\" WORD:      timer   ¥¿¥¤¥Þ¡¼
-.\" WORD:      jiffies jiffy
-.\"
-.TH GETITIMER 2 2009-03-15 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-getitimer, setitimer \- ¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÎÃͤò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë
-.SH ½ñ¼°
+.TH GETITIMER 2 2012\-10\-01 Linux "Linux Programmer's Manual"
+.SH 名前
+getitimer, setitimer \- インターバル・タイマーの値を取得または設定する
+.SH 書式
 .nf
-.B #include <sys/time.h>
+\fB#include <sys/time.h>\fP
 .sp
-.BI "int getitimer(int " which ", struct itimerval *" curr_value );
+\fBint getitimer(int \fP\fIwhich\fP\fB, struct itimerval *\fP\fIcurr_value\fP\fB);\fP
 .br
-.BI "int setitimer(int " which ", const struct itimerval *" new_value ,
-.BI "              struct itimerval *" old_value );
+\fBint setitimer(int \fP\fIwhich\fP\fB, const struct itimerval *\fP\fInew_value\fP\fB,\fP
+\fB              struct itimerval *\fP\fIold_value\fP\fB);\fP
 .fi
-.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 ¸Ä¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤òÄ󶡤¹¤ë¡£
-¤½¤ì¤¾¤ì¤Î¥¿¥¤¥Þ¡¼¤ÏÊÌ¡¹¤Î»þ´ÖÎΰè¤Ç¸º¾¯¤¹¤ë¡£
-¤É¤Î¥¿¥¤¥Þ¡¼¤âËþλ¤¹¤ë¤È¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢
-¥¿¥¤¥Þ¡¼¤Ï (ÀßÄê¤Ë¤è¤Ã¤Æ¤Ï) ºÆ¤Ó³«»Ï¤µ¤ì¤ë¡£
-.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) ¤Ç¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È
-.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 on behalf of the process.
-.\"O Coupled with
-.\"O .BR ITIMER_VIRTUAL ,
-.\"O this timer is usually used to profile the time spent by the
-.\"O application in user and kernel space.
-.\"O .B SIGPROF
-.\"O is delivered upon expiration.
-.B ITIMER_PROF
-¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Æ¡¢
-¤«¤Ä¥·¥¹¥Æ¥à¤¬¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë½èÍý¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë´Ö¤Ë¸º¾¯¤¹¤ë¡£
-¿¤¯¤Î¾ì¹ç¡¢¤³¤Î¥¿¥¤¥Þ¡¼¤Ï
-.B ITIMER_VIRTUAL
-¤ÈÁȤ߹ç¤ï¤µ¤ì¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Ç
-¤É¤ì¤À¤±¤Î»þ´Ö¤ò²á¤´¤·¤¿¤«¤ò¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
-Ëþλ¤¹¤ë¤È
-.B SIGPROF
-¤¬Á÷¤é¤ì¤ë¡£
+.SH 説明
+システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それぞれのタイマーは別々の時間領域で減少する。
+どのタイマーも満了するとプロセスにシグナルが送られ、 タイマーは (設定によっては) 再び開始される。
+.TP  1.5i
+\fBITIMER_REAL\fP
+実時間 (real time) で減少し、満了すると \fBSIGALRM\fP が送られる。
+.TP 
+\fBITIMER_VIRTUAL\fP
+プロセスが実行されている間のみ減少し、満了すると \fBSIGVTALRM\fP が送られる。
+.TP 
+\fBITIMER_PROF\fP
+プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なっている間に減少する。 多くの場合、このタイマーは
+\fBITIMER_VIRTUAL\fP と組み合わされて、アプリケーションがカーネル空間とユーザー空間で
+どれだけの時間を過ごしたかをプロファイルするのに使用される。 満了すると \fBSIGPROF\fP が送られる。
 .LP
-.\"O Timer values are defined by the following structures:
-¥¿¥¤¥Þ¡¼¤ÎÃͤϰʲ¼¤Î¹½Â¤ÂΤˤè¤Ã¤ÆÄêµÁ¤µ¤ì¤ë:
+タイマーの値は以下の構造体によって定義される:
 .PD 0
 .in +4n
 .nf
@@ -89,302 +63,90 @@ struct itimerval {
 };
 
 struct timeval {
-    long tv_sec;                /* seconds */
-    long tv_usec;               /* microseconds */
+    time_t      tv_sec;         /* seconds */
+    suseconds_t tv_usec;        /* microseconds */
 };
 .fi
 .in
 .PD
 .LP
-.\"O The function
-.\"O .BR getitimer ()
-.\"O fills the structure pointed to by
-.\"O .I curr_value
-.\"O with the current setting for the timer specified by
-.\"O .I which
-.\"O (one of
-.\"O .BR ITIMER_REAL ,
-.\"O .BR ITIMER_VIRTUAL ,
-.\"O or
-.\"O .BR ITIMER_PROF ).
-.BR getitimer ()
-´Ø¿ô¤Ï¡¢
-.I which
-¤Ç»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼
-.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 is disabled.
-.\"O Similarly,
-.\"O .I it_interval
-.\"O is set to the reset value.
-.I it_value
-Í×ÁǤˤϥ¿¥¤¥Þ¡¼¤Î»Ä¤ê»þ´Ö¤¬ÀßÄꤵ¤ì¤ë¡£¥¿¥¤¥Þ¡¼¤¬¥ª¥Õ¤Î¾ì¹ç¤Ï
-¥¼¥í¤¬ÀßÄꤵ¤ì¤ë¡£Æ±ÍͤË
-.I it_interval
-¤Ë¤Ï½é´üÃͤ¬ÀßÄꤵ¤ì¤ë¡£
+\fBgetitimer\fP()  関数は、 \fIwhich\fP で指定されたタイマー (\fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP,
+\fBITIMER_PROF\fP のどれか) の現在の設定を、 \fIcurr_value\fP で指定された構造体に格納する。 \fIit_value\fP
+要素にはタイマーの残り時間が設定される。タイマーがオフの場合は ゼロが設定される。同様に \fIit_interval\fP には初期値が設定される。
 
-.\"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 °Ê³°¤Î¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Î¸Å¤¤Ãͤ¬
-.I old_value
-¤Ë³ÊǼ¤µ¤ì¤ë¡£
+\fBsetitimer\fP()  関数は指定されたタイマーに \fInew_value\fP の値を設定する。 \fIold_value\fP が NULL
+以外の場合、タイマーの古い値が \fIold_value\fP に格納される。
 .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
-¤¬¥¼¥í¤Î¾ì¹ç) ¤ÏÄä»ß¤¹¤ë¡£
+タイマーは \fIit_value\fP からゼロへ向けて減っていき、シグナルを生成し、 \fIit_interval\fP に初期化される。
+タイマーがゼロに設定された場合 (\fIit_value\fP がゼロか、タイマーが満了した時に \fIit_interval\fP がゼロの場合) は停止する。
 .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
-¤ÎξÊý¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£
+タイマーの期間は \fItv_sec\fP と \fItv_usec\fP の両方により決定される。
 .LP
-.\"O Timers will never expire before the requested time,
-.\"O but may expire some (short) time afterward, which depends
-.\"O on the system timer resolution and on the system load; see
-.\"O .BR time (7).
-.\"O (But see BUGS below.)
-.\"O Upon expiration, a signal will be generated and the timer reset.
-.\"O If the timer expires while the process is active (always true for
-.\"O .BR ITIMER_VIRTUAL )
-.\"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 ÊÖ¤êÃÍ
-.\"O On success, zero is returned.
-.\"O On error, \-1 is returned, and
-.\"O .I errno
-.\"O is set appropriately.
-À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ
-.I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EFAULT
-.\"O .IR new_value ,
-.\"O .IR old_value ,
-.\"O or
-.\"O .I curr_value
-.\"O is not valid a pointer.
-.IR new_value ,
-.IR old_value ,
-.I curr_value
-¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤¤¡£
-.TP
-.B EINVAL
-.\"O .I which
-.\"O is not one of
-.\"O .BR ITIMER_REAL ,
-.\"O .BR ITIMER_VIRTUAL ,
-.\"O or
-.\"O .BR ITIMER_PROF ;
-.\"O or (since Linux 2.6.22) one of the
-.\"O .I tv_usec
-.\"O fields in the structure pointed to by
-.\"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 °Ê¹ß¤Ç)
-.I new_value
-¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤÎ
-.I tv_usec
-¥Õ¥£¡¼¥ë¥É¤Î°ì¤Ä¤¬ 0 °Ê¾å 999999 °Ê²¼¤ÎÈϰϤËÆþ¤é¤Ê¤¤ÃͤǤ¢¤ë¡£
-.\"O .SH "CONFORMING TO"
-.SH ½àµò
-.\"O POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).
-POSIX.1-2001, SVr4, 4.4BSD (¤³¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç»Ï¤á¤Æ¸½¤ï¤ì¤¿).
-.\"O POSIX.1-2008 marks
-.\"O .BR getitimer ()
-.\"O and
-.\"O .BR setitimer ()
-.\"O obsolete, recommending the use of the POSIX timers API
-.\"O .RB ( timer_gettime (2),
-.\"O .BR timer_settime (2),
-.\"O etc.) instead.
-POSIX.1-2008 ¤Ç¤Ï¡¢
-.BR getitimer ()
-¤È
-.BR setitimer ()
-¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢
-Âå¤ï¤ê¤Ë POSIX ¥¿¥¤¥Þ¡¼ API
-.RB ( timer_gettime (2),
-.BR timer_settime (2)
-¤Ê¤É) ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£
-.\"O .SH NOTES
-.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)
-¤ÎÁ°¸å¤Ç¤Ï¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÏÊݸ¤µ¤ì¤ë¡£
+要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だけ満了が遅れることはある。
+どれだけ遅れるかはシステムの時間分解能とシステムの負荷に依存する (\fBtime\fP(7)  参照; 但し、バグの項も参照のこと)。
+タイマーが満了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな時 (\fBITIMER_VIRTUAL\fP
+の場合には常にそうである) にタイマーが満了した場合、生成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少しの時間だけ
+遅れて配送される。
+.SH 返り値
+成功した場合、0 が返される。エラーが発生した場合、\-1 が返され、 \fIerrno\fP が適切に設定される。
+.SH エラー
+.TP 
+\fBEFAULT\fP
+\fInew_value\fP, \fIold_value\fP, \fIcurr_value\fP が有効なポインタではない。
+.TP 
+\fBEINVAL\fP
+\fIwhich\fP が \fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP, \fBITIMER_PROF\fP のどれでもない。 または
+(Linux 2.6.22 以降で)  \fInew_value\fP で指定された構造体の \fItv_usec\fP フィールドの一つが 0 以上 999999
+以下の範囲に入らない値である。
+.SH 準拠
+POSIX.1\-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  POSIX.1\-2008 では、
+\fBgetitimer\fP()  と \fBsetitimer\fP()  は廃止予定とされており、 代わりに POSIX タイマー API
+(\fBtimer_gettime\fP(2), \fBtimer_settime\fP(2)  など) を使うことが推奨されている。
+.SH 注意
+\fBfork\fP(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継承しない。 \fBexecve\fP(2)
+の前後ではインターバル・タイマーは保存される。
+
+POSIX.1 では、 \fBsetitimer\fP()  と、 \fBalarm\fP(2), \fBsleep\fP(3), \fBusleep\fP(3)  という 3
+つのインタフェースとの相互の影響については規定していない。
+
+標準では、次の呼び出しの意味については規定されていない。
+
+    setitimer(which, NULL, &old_value);
+
+(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、
+この呼び出しは以下と等価である。
+
+    getitimer(which, &old_value);
 
-.\"O POSIX.1 leaves the
-.\"O interaction between
-.\"O .BR setitimer ()
-.\"O and the three interfaces
-.\"O .BR alarm (2),
-.\"O .BR sleep (3),
-.\"O and
-.\"O .BR usleep (3)
-.\"O unspecified.
-POSIX.1 ¤Ç¤Ï¡¢
-.BR setitimer ()
-¤È¡¢
-.BR alarm (2),
-.BR sleep (3),
-.BR usleep (3)
-¤È¤¤¤¦ 3 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤ÎÁê¸ß¤Î±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£
-.\"O .SH BUGS
-.SH ¥Ð¥°
-.\"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 Under very heavy loading, an
-.\"O .B ITIMER_REAL
-.\"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 ¸Ä¤á¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¤Ï¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£
+Linux では、この呼び出しは \fInew_value\fP フィールドが 0 の呼び出しと等価なものと扱われる。 つまり、タイマーが無効になる。
+\fILinux のこの間違った機能を使用しないこと\fP。移植性もなく、不必要な機能である。
+.SH バグ
+シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つだけがプロセスのために 待機する。 非常に重い負荷の下では、
+\fBITIMER_REAL\fP タイマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時間切れが起こる場合がある。
+そのような場合、 2 個めのイベントに対するシグナルは失われてしまう。
 
-.\"O On Linux kernels before 2.6.16, timer values are represented in jiffies.
-¥Ð¡¼¥¸¥ç¥ó 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 (defined in
-.\"O .IR include/linux/jiffies.h ),
-.\"O then the timer is silently truncated to this ceiling value.
-.\"O On Linux/i386 (where, since Linux 2.6.13,
-.\"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 É½¸½¤Ç
-.RI ( include/linux/jiffies.h
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)
-.B MAX_SEC_IN_JIFFIES
-¤ò±Û¤¨¤ëÃͤò¥¿¥¤¥Þ¡¼¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤â¤Î¤Î¾ì¹ç¡¢
-¥¿¥¤¥Þ¡¼¤Ï°ÅÌۤˤ³¤Î¾å¸ÂÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£
-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 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï»þ´Ö¤Ë´Ø¤¹¤ëÆâÉôɽ¸½¤È¤·¤Æ
-°Û¤Ê¤ëɽ¸½¤ò»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¾å¸Â¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£
+バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現される。 要求が jiffy 表現で
+(\fIinclude/linux/jiffies.h\fP で定義されている)  \fBMAX_SEC_IN_JIFFIES\fP
+を越える値をタイマーに設定しようとするものの場合、 タイマーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux
+2.6.13 以降では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日になることを意味する。 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 ¤Ç½¤Àµ¤µ¤ì¤¿¡£
 .\" 4 Jul 2005: It looks like this bug may remain in 2.4.x.
 .\"    http://lkml.org/lkml/2005/7/1/165
+(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネルは ある種の状況では 1 jiffy
+早くタイマーが終了してしまうというバグがあった。 このバグはカーネル 2.6.12 で修正された。
 
-.\"O POSIX.1-2001 says that
-.\"O .BR setitimer ()
-.\"O should fail if a
-.\"O .I tv_usec
-.\"O value is specified that is outside of the range 0 to 999999.
-.\"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 ¤Ç¤Ï
-.BR setitimer ()
-¤Ï
-.I tv_usec
-¤ÎÃͤ¬ 0 ¤«¤é 999999 ¤ÎÈϰϳ°¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£
-¤·¤«¤·¡¢2.6.21 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Î Linux ¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤é¤º¡¢
-Âбþ¤¹¤ëÉÿô¤Îʬ¤À¤±¤½¤Î¥¿¥¤¥Þ¡¼¤ÎÉäÎÃͤ¬°ÅÌÛ¤ËÄ´À°¤µ¤ì¤ë¡£
-.\"O From kernel 2.6.22 onward,
-.\"O this nonconformance has been repaired:
-.\"O an improper
-.\"O .I tv_usec
-.\"O value results in an
-.\"O .B EINVAL
-.\"O error.
-¥«¡¼¥Í¥ë 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 ´ØÏ¢¹àÌÜ
-.BR gettimeofday (2),
-.BR sigaction (2),
-.BR signal (2),
-.BR timer_create (2),
-.BR timerfd_create (2),
-.BR time (7)
+POSIX.1\-2001 では \fBsetitimer\fP()  は \fItv_usec\fP の値が 0 から 999999
+の範囲外である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの Linux ではエラーにならず、
+対応する秒数の分だけそのタイマーの秒の値が暗黙に調整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 \fItv_usec\fP
+の値が不適切な場合には \fBEINVAL\fP エラーとなる。
+.SH 関連項目
+\fBgettimeofday\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBtimer_create\fP(2),
+\fBtimerfd_create\fP(2), \fBtime\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。