X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman3%2Fstrtoul.3;h=136bb90046c5556d38557a28ab272c6287078eaf;hb=4fa3e54b837e5814a4598ec901d77446bf5cb9b3;hp=5460c7c9a9b11b3d0ca2b7059fe1718f405ed49b;hpb=4098ba44b0a43ff980f70689be7c8ed69230e427;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man3/strtoul.3 b/release/man3/strtoul.3 index 5460c7c9..136bb900 100644 --- a/release/man3/strtoul.3 +++ b/release/man3/strtoul.3 @@ -28,170 +28,94 @@ .\" 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 , 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 +\fB#include \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)