STRTOL
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
strtol, strtoq
- 文字列の数値を long 値、long long 値または quad_t 値に変換
索引
ライブラリ
Lb libc
索引
書式
In stdlib.h
In limits.h
Ft long
Fn strtol const char *nptr char **endptr int base
Ft long long
Fn strtoll const char *nptr char **endptr int base
In sys/types.h
In stdlib.h
In limits.h
Ft quad_t
Fn strtoq const char *nptr char **endptr int base
索引
解説
Fn strtol
関数は、
Fa nptr
にある文字列を
long
値に変換します。
Fn strtoll
関数は、
Fa nptr
にある文字列を
long long
値に変換します。
Fn strtoq
関数は、
Fa nptr
にある文字列を
quad_t
値に変換します。
変換は与えられた
Fa base
に従って行われます。
この
Fa base
の値は 2 から 36 の間か、
または特別な値である 0 でなければなりません。
文字列は、任意の数の空白文字
(isspace3
により決められるような) で始まり、
オプションで一つの
`+'
または
`-'
記号がそれに続きます。
Fa base
が 0 か 16 のときは、文字列は接頭辞
`0x'
を含むことができ、数字は基数を 16 として読み取られます。
そうでないときの、0 の
Fa base
では、その次の文字が
`0'
でなければ
10 (10 進数) と見なされ、
`0'
であれば
8 (8 進数) と見なされます。
文字列の残りは、
与えられた基数では有効な数字ではない最初の文字のところで中止するという
わかりやすいやり方で
long
値に変換されます。
(10 以上の基数では、大文字または小文字の
`A'
は 10 を、
`B'
は 11 を表し、
`Z'
は 35 を表します。)
Fa endptr
が空ポインタではない場合は、
Fn strtol
は最初の無効な文字のアドレスを
Fa *endptr
に格納します。
数字が全くなかった場合は、
Fn strtol
は
Fa nptr
の元の値を
Fa *endptr
に格納します。
(従って、戻ったときに
Fa *nptr
が
`\0'
ではなく、
Fa **endptr
が
`\0'
である場合は、文字列全体が
有効だったことになります。)
索引
戻り値
Fn strtol
関数は、値がアンダフローやオーバフローを起こさない限り、
変換の結果を返します。
アンダフローが起こった場合は、
Fn strtol
は
LONG_MIN
を返します。オーバフローが起こった場合は、
Fn strtol
は
LONG_MAX
を返します。
Fn strtoll
関数は、値がアンダフローやオーバフローを起こさない限り、
変換の結果を返します。
アンダフローが起こった場合は、
Fn strtoll
は
LLONG_MIN
を返します。オーバフローが起こった場合は、
Fn strtoll
は
LLONG_MAX
を返します。
全ての場合、
errno
は
Er ERANGE
に設定されます。
索引
エラー
- Bq Er ERANGE
-
与えられた文字列が値域を超えました。
変換された値は固定されています。
索引
関連項目
atof(3),
atoi(3),
atol(3),
strtod(3),
strtoul(3)
索引
規格
Fn strtol
関数は、
St -isoC
に適合しています。
Fn strtoll
関数は、
St -isoC-99
に適合しています。
BSD Fn strtoq
関数は推奨されません。
索引
バグ
現在のロケールを無視します。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
- バグ
-
Time: 07:07:10 GMT, January 12, 2009