OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man3 / strtoul.3
index 5460c7c..136bb90 100644 (file)
 .\" Fixed typo, aeb, 950823
 .\" 2002-02-22, joey, mihtjel: Added strtoull()
 .\"
-.\" Japanese Version Copyright (c) 1999 AKAMATSU, Kazuo
-.\"                            and 2006 Akihiro MOTOKI
-.\"         all rights reserved.
-.\" Translated Thu Jan 31 18:00:00 JST 1999
-.\"         by AKAMATSU, Kazuo
-.\" Updated & Modified 2006-07-20,
-.\"         Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
+.\"*******************************************************************
 .\"
-.\" WORD:       base            ´ð¿ô
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH STRTOUL 3  2011-09-15 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
-strtoul, strtoull, strtouq \- Ê¸»úÎó¤ò unsigned long int ¤ËÊÑ´¹¤¹¤ë
-.SH ½ñ¼°
+.\"*******************************************************************
+.TH STRTOUL 3 2011\-09\-15 GNU "Linux Programmer's Manual"
+.SH 名前
+strtoul, strtoull, strtouq \- 文字列を unsigned long int に変換する
+.SH 書式
 .nf
-.B #include <stdlib.h>
+\fB#include <stdlib.h>\fP
 .sp
-.BI "unsigned long int strtoul(const char *" nptr ", char **" endptr \
-", int " base );
+\fBunsigned long int strtoul(const char *\fP\fInptr\fP\fB, char **\fP\fIendptr\fP\fB, int \fP\fIbase\fP\fB);\fP
 .sp
-.BI "unsigned long long int strtoull(const char *" nptr ", char **" endptr ,
-.BI "                                int " base );
+\fBunsigned long long int strtoull(const char *\fP\fInptr\fP\fB, char **\fP\fIendptr\fP\fB,\fP
+\fB                                int \fP\fIbase\fP\fB);\fP
 .fi
 .sp
 .in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
-.RB ( feature_test_macros (7)
-»²¾È):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
 .sp
 .ad l
-.BR strtoull ():
+\fBstrtoull\fP():
 .RS 4
-XOPEN_SOURCE\ >=\ 600 || _BSD_SOURCE || _SVID_SOURCE || _ISOC99_SOURCE ||
-_POSIX_C_SOURCE\ >=\ 200112L;
+XOPEN_SOURCE\ >=\ 600 || _BSD_SOURCE || _SVID_SOURCE || _ISOC99_SOURCE
+|| _POSIX_C_SOURCE\ >=\ 200112L;
 .br
-or
-.I cc\ -std=c99
+または \fIcc\ \-std=c99\fP
 .RE
 .ad
-.SH ÀâÌÀ
-.BR strtoul ()
-´Ø¿ô¤Ï¡¢ \fInptr\fP ¤Îʸ»úÎó¤ÎºÇ½é¤ÎÉôʬ¤ò¡¢
-\fIbase\fP ¤ò´ð¿ô¤È¤·¤Æ
-.I "unsigned long int"
-¤ËÊÑ´¹¤¹¤ë¡£
-¤³¤Î \fIbase\fP ¤Ï 2 ¤«¤é 36 ¤Þ¤Ç¤ÎÃÍ
-¤¢¤ë¤¤¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤ÄÃÍ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+.SH 説明
+\fBstrtoul\fP()  関数は、 \fInptr\fP の文字列の最初の部分を、 \fIbase\fP を基数として \fIunsigned long int\fP
+に変換する。 この \fIbase\fP は 2 から 36 までの値 あるいは特別な意味を持つ値 0 でなければならない。
 .PP
-ʸ»úÎó¤ÎÀèƬ¤Ë¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¶õÇò¤¬¤¢¤Ã¤Æ¤â¤è¤¯ (¶õÇò¤Ï
-.BR ( isspace (3)
-¤ÇȽÄꤵ¤ì¤ë) ¡¢¤Þ¤¿¿ô»ú¤ÎľÁ°¤Ë¤Ï \(aq+\(aq ¤« \(aq\-\(aq ¤Î
-Éä¹æ¤¬¤¢¤Ã¤Æ¤â¤è¤¤¡£
-\fIbase\fP ¤¬ 0 ¤Þ¤¿¤Ï 16 ¤Î¾ì¹ç¤Ë¤Ï¡¢ Ê¸»úÎó¤ÎÀèƬ¤Ë "0x" ¤òÃÖ¤¯¤³¤È¤¬
-¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤Ï 16¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£
-¤³¤ì°Ê³°¤Îʸ»úÎó¤Ç \fIbase\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢
-ʸ»úÎ󤬠\(aq0\(aq ¤Ç»Ï¤Þ¤ë¤È¤­¤Ï 8¿Ê¿ô¤È¤·¤Æ¡¢
-¤½¤ì°Ê³°¤Î¤È¤­¤Ï 10¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£
+文字列の先頭には、任意の数の空白があってもよく (空白は \fBisspace\fP(3) で判定される)、また数字の直前には \(aq+\(aq か
+\(aq\-\(aq の 符号があってもよい。 \fIbase\fP が 0 または 16 の場合には、文字列の先頭に "0x" を置くことが
+でき、その場合には文字列は 16進数として扱われる。 これ以外の文字列で \fIbase\fP が 0 の場合は、 文字列が \(aq0\(aq
+で始まるときは 8進数として、 それ以外のときは 10進数として扱われる。
 .PP
-ʸ»úÎó¤Î»Ä¤ê¤ÎÉôʬ¤Ï
-.I "unsigned long int"
-¤ËÊÑ´¹¤µ¤ì¤ë¤¬¡¢´ð¿ô¤ËÂФ·¤Æ
-Í­¸ú¤Ç¤Ê¤¤¿ô»ú¤¬¸½¤ì¤¿»þÅÀ¤ÇÊÑ´¹¤Ï½ªÎ»¤¹¤ë¡£(11¿Ê¿ô°Ê¾å¤Ç¤Ï \(aqA\(aq ¤Ï
-Âçʸ»ú¡¦¾®Ê¸»ú¤Ë´Ø¤ï¤é¤º 10 ¤òɽ¤·¡¢ \(aqB\(aq ¤Ï 11 ¤òɽ¸½¤·,
-°Ê²¼Æ±Íͤˡ¢ \(aqZ\(aq ¤Ï 35 ¤òɽ¤¹¡£)
+文字列の残りの部分は \fIunsigned long int\fP に変換されるが、基数に対して
+有効でない数字が現れた時点で変換は終了する。(11進数以上では \(aqA\(aq は 大文字・小文字に関わらず 10 を表し、 \(aqB\(aq は
+11 を表現し, 以下同様に、 \(aqZ\(aq は 35 を表す。)
 .PP
-\fIendptr\fP ¤¬¥Ì¥ëÃÍ (NULL) ¤Ç¤Ê¤¤¾ì¹ç¡¢
-.BR strtoul ()
-¤ÏºÇ½é¤ËÉÔÀµ¤Êʸ»ú¤¬¸½¤ì¤¿¥¢¥É¥ì¥¹¤ò
-\fI*endptr\fP ¤Ë³ÊǼ¤·¤Æ¤¤¤ë¡£
-ʸ»úÎó¤ËÍ­¸ú¤Ê¿ô»ú¤¬¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð¡¢
-.BR strtoul ()
-¤Ï \fInptr\fP
-¤Î¸µ¤ÎÃͤò \fI*endptr\fP ¤ËÂåÆþ¤¹¤ë(¤½¤·¤Æ 0 ¤òÊÖ¤¹)¡£
-Æäˡ¢ \fI*nptr\fP ¤¬ \(aq\\0\(aq °Ê³°¤Ç¡¢ÊÖ¤µ¤ì¤¿ \fI**endptr\fP ¤¬
-\(aq\\0\(aq ¤Ê¤é¤Ð¡¢Ê¸»úÎóÁ´ÂΤ¬Í­¸ú¤À¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£
+\fIendptr\fP がヌル値 (NULL) でない場合、 \fBstrtoul\fP()  は最初に不正な文字が現れたアドレスを \fI*endptr\fP
+に格納している。 文字列に有効な数字がひとつもなければ、 \fBstrtoul\fP()  は \fInptr\fP の元の値を \fI*endptr\fP
+に代入する(そして 0 を返す)。 特に、 \fI*nptr\fP が \(aq\e0\(aq 以外で、返された \fI**endptr\fP が
+\(aq\e0\(aq ならば、文字列全体が有効だったことになる。
 .PP
-.BR strtoull ()
-´Ø¿ô¤Ï
-.BR strtoul ()
-´Ø¿ô¤ÈƱÍͤÀ¤¬¡¢
-.I "unsigned long long int"
-·¿¤ÎÃͤòÊÖ¤¹¡£
-.SH ÊÖ¤êÃÍ
-.BR strtoul ()
-´Ø¿ô¤ÏÊÑ´¹·ë²Ì¤òÊÖ¤¹¡£Ê¸»úÎ󤬥ޥ¤¥Ê¥¹Éä¹æ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì
-¹ç¤Ï¡¢(Éä¹æȿžÁ°¤ÎÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤¤¤Ê¤±¤ì¤Ð) ÊÑ´¹·ë²Ì¤òÉä¹æȿž¤·¤¿
-Ãͤò unsigned ·¿¤ÇÊÖ¤¹¡£ÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï
-.B ULONG_MAX
-¤òÊÖ¤·¡¢
-.I errno
-¤Ë
-.B ERANGE
-¤òÀßÄꤹ¤ë¡£
-.RB ( ULONG_MAX
-¤ò
-.B ULLONG_MAX
-¤ÈÆɤßÂؤ¨¤ì¤Ð)
-.BR strtoull ()
-¤Ï
-.BR strtoul ()
-¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EINVAL
-(C99 ¤Ë¤Ï¤Ê¤¤)
-Í¿¤¨¤é¤ì¤¿
-.I base
-¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤǤ¢¤ë¡£
-.TP
-.B ERANGE
-ʸ»úÎ󤬿ôÃͤÎɽ¸½Èϰϳ°¤Ç¤¢¤ë¡£
+\fBstrtoull\fP()  関数は \fBstrtoul\fP()  関数と同様だが、 \fIunsigned long long int\fP 型の値を返す。
+.SH 返り値
+\fBstrtoul\fP()  関数は変換結果を返す。文字列がマイナス符号から始まっていた場 合は、(符号反転前の値がオーバーフローしていなければ)
+変換結果を符号反転した 値を unsigned 型で返す。変換でオーバーフローが発生した場合は \fBULONG_MAX\fP を返し、 \fIerrno\fP に
+\fBERANGE\fP を設定する。 (\fBULONG_MAX\fP を \fBULLONG_MAX\fP と読み替えれば)  \fBstrtoull\fP()  は
+\fBstrtoul\fP()  と全く同じである。
+.SH エラー
+.TP 
+\fBEINVAL\fP
+(C99 にはない) 指定された \fIbase\fP がサポートされていない値である。
+.TP 
+\fBERANGE\fP
+結果の値が範囲外である。
 .LP
-¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢Á´¤¯ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç(Á´¤¯¿ô»ú¤¬¸½¤ì¤º¡¢
-0 ¤¬ÊÖ¤µ¤ì¤ë)¡¢\fIerrno\fP ¤Ë \fBEINVAL\fP ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-.SH ½àµò
-.BR strtoul ()
-¤Ï SVr4, C89, C99 ¤È POSIX-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£
-.BR strtoull ()
-¤Ï C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-.B strtoul ()
-¤«¤é¤ÏÀ®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â 0 ¤ä
-.B ULONG_MAX
-.RB ( strtoull ()
-¤Ç¤Ï
-.BR ULLONG_MAX )
-¤¬ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢
-¥×¥í¥°¥é¥à¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë
-.I errno
-¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë
-.I errno
-¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë
-ɬÍפ¬¤¢¤ë¡£
+実装によっては、変換が行われなかった場合 (数字がなく、0 を返した場合)、 \fIerrno\fP に \fBEINVAL\fP が設定される場合がある。
+.SH 準拠
+\fBstrtoul\fP()  は SVr4, C89, C99 と POSIX\-2001 に準拠している。 \fBstrtoull\fP()  は C99 と
+POSIX.1\-2001 に準拠している。
+.SH 注意
+\fBstrtoul ()\fP からは成功、失敗どちらの場合でも 0 や \fBULONG_MAX\fP (\fBstrtoull\fP()  では
+\fBULLONG_MAX\fP)  が返る可能性があるので、 プログラムは関数を呼び出す前に \fIerrno\fP を 0 に設定し、呼び出し後に
+\fIerrno\fP が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する 必要がある。
 
-"C" °Ê³°¤Î¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢¤½¤Î¾¤Îʸ»úÎó¤â¼õ¤±ÉÕ¤±¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-(Î㤨¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î 1000 Ëè¤Î¶èÀÚ¤êʸ»ú¤ËÂбþ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£)
+"C" 以外のロケールの場合、その他の文字列も受け付けられるかもしれない。 (例えば、現在のロケールの 1000
+毎の区切り文字に対応しているかもしれない。)
 .LP
-BSD ¤Ë¤Ï¡¢
+BSD には、
 .sp
 .in +4n
 .nf
-.BI "u_quad_t strtouq(const char *" nptr ", char **" endptr ", int " base );
+\fBu_quad_t strtouq(const char *\fP\fInptr\fP\fB, char **\fP\fIendptr\fP\fB, int \fP\fIbase\fP\fB);\fP
 .sp
 .in -4n
 .fi
-¤È¤¤¤¦´°Á´¤ËƱÍͤÎÄêµÁ¤ò»ý¤Ä´Ø¿ô¤¬¤¢¤ë¡£
-»ÈÍÑÃæ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ï¡¼¥ÉĹ¼¡Âè¤Ç¤¢¤ë¤¬¡¢¤³¤Î´Ø¿ô¤Ï
-.BR strtoull ()
-¤ä
-.BR stroul ()
-¤ÈÅù²Á¤Ê¾ì¹ç¤â¤¢¤ê¤¨¤ë¡£
+という完全に同様の定義を持つ関数がある。 使用中のアーキテクチャのワード長次第であるが、この関数は \fBstrtoull\fP()  や
+\fBstroul\fP()  と等価な場合もありえる。
 
-Éé¤ÎÃͤâÀµÅö¤ÊÆþÎϤȤߤʤµ¤ì¡¢¥¨¥é¡¼¤â¤Ê¤¯¡¢
-Âбþ¤¹¤ë
-.I "unsigned long int"
-·¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¡£
-.SH Îã
-.BR strtol (3)
-¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÎã¤ò»²¾È¡£
-¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Î»ÈÍÑÊýË¡¤âƱÍͤǤ¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR atof (3),
-.BR atoi (3),
-.BR atol (3),
-.BR strtod (3),
-.BR strtol (3)
+負の値も正当な入力とみなされ、エラーもなく、 対応する \fIunsigned long int\fP 型の値に変換される。
+.SH 例
+\fBstrtol\fP(3)  のマニュアルページの例を参照。 このページで説明した関数の使用方法も同様である。
+.SH 関連項目
+\fBatof\fP(3), \fBatoi\fP(3), \fBatol\fP(3), \fBstrtod\fP(3), \fBstrtol\fP(3)