tail head cat sleep
QR code linking to this page

manページ  — STRTOUL

名称

strtoul – 文字列を unsigned long 値、unsigned long long 値 または uquad_t 値 に変換

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <stdlib.h>
#include <limits.h>

unsigned long
strtoul(const char *nptr, char **endptr, int base);

unsigned long long
strtoull(const char *nptr, char **endptr, int base);
#include <sys/types.h>
#include <stdlib.h>
#include <limits.h>

u_quad_t
strtouq(const char *nptr, char **endptr, int base);

解説

strtoul() 関数は、 nptr にある文字列を unsigned long 値に変換します。 strtoull() 関数は、 nptr にある文字列を unsigned long long 値に変換します。 strtouq() 関数は、 nptr にある文字列を u_quad_t 値に変換します。 変換は与えられた base に従って行われます。 この base の値は 2 から 36 の間か、 または特別な値である 0 でなければなりません。

文字列は、任意の数の空白文字 (isspace(3) により決められるような) で始まり、 オプションで一つの ‘+’ または ‘-’ 記号が続きます。 base が 0 か 16 のとき、文字列は接頭辞 "0x" を含むことができ、数字は基数を 16 として読み取られます。 そうでないときの、0 の base では、その次の文字が ‘0’ でなければ 10 (10 進数) と見なされ、 ‘0’ であれば 8 (8 進数) と見なされます。

文字列の残りは、 与えられた基数では有効な数字ではない最初の文字のところで中止するという わかりやすいやり方で unsigned long 値に変換されます。 (10 以上の基数では、大文字または小文字の ‘A’ は 10 を、 ‘B’ は 11 を表し、 ‘Z’ は 35 を表します。)

endptr NULL ではない場合は、 strtoul() は最初の無効な文字のアドレスを *endptr に格納します。 数字が全くなかった場合は、 strtoul()nptr の元の値を *endptr に格納します。 (従って、戻ったときに *nptr が ‘\0’ ではなく、 **endptr が ‘\0’ である場合は、文字列全体が 有効だったことになります。)

戻り値

strtoul() 関数は、 元の (否定されていない) 値がオーバフローを起こしそうにない限り、 変換の結果、もしくは先頭にマイナス記号がある場合には変換結果の否定を返します。 オーバフローを起こす場合、 strtoul() ULONG_MAX を返します。 strtoull() 関数は、 元の (否定されていない) 値がオーバフローを起こしそうにない限り、 変換の結果、もしくは先頭にマイナス記号がある場合には変換結果の否定を返します。 オーバフローを起こす場合、 strtoull() ULLONG_MAX を返します。 全ての場合で、 errnoERANGE を設定します。

エラー

[ERANGE]
  与えられた文字列が値域を超えました。 変換された値は固定されています。

関連項目

strtol(3)

規格

strtoul() 関数は、 ISO/IEC 9899:1990 ("ISO C90") に適合しています。 strtoll() 関数は、 ISO/IEC 9899:1999 ("ISO C99") に適合しています。 BSD strtouq() 関数は推奨されません。

バグ

現在のロケールを無視します。

STRTOUL (3) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Did you know that 7/5 people don't know how to use fractions?