strtoul(3) - wariua/manpages-ko GitHub Wiki
strtoul, strtoull, strtouq - λ¬Έμμ΄μ λΆνΈ μλ long μ μλ‘ λ³ννκΈ°
#include <stdlib.h>
unsigned long int strtoul(const char *nptr, char **endptr, int base);
unsigned long long int strtoull(const char *nptr, char **endptr,
int base);
glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
strtoull()
: -
_ISOC99_SOURCE
|| /* glibc λ²μ <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
strtoul()
ν¨μλ nptr
μ μλ λ¬Έμμ΄μ μ²μ λΆλΆμ μ§μ ν base
μ λ°λΌ unsigned long int
κ°μΌλ‘ λ³ννλ€. κΈ°μλ 2μ 36 μ¬μ΄μ΄κ±°λ νΉμν κ° 0μ΄μ΄μΌ νλ€.
λ¬Έμμ΄μ΄ μμ κ°μμ 곡백(isspace(3)
μΌλ‘ νλ¨)μΌλ‘ μμν μ μμΌλ©° κ·Έ λ€μμ μ νμ μΌλ‘ '+' λ΄μ§ '-' λΆνΈ ν κ°κ° μ¬ μ μλ€. base
κ° 0μ΄λ 16μ΄λ©΄ λ¬Έμμ΄μμ λ€μμ "0x" μ λλΆκ° μμ μ μμΌλ©°, κ·Έλ¬λ©΄ μλ₯Ό 16μ§μλ‘ μ½μ΄ λ€μΈλ€. κ·Έλ μ§ μκ³ λ€μ λ¬Έμκ° '0'μ΄λ©΄ base
0μ 8λ‘ (8μ§μλ‘) λ°μλ€μ΄λ©°, μλλ©΄ 10μΌλ‘ (10μ§μλ‘) λ°μλ€μΈλ€.
λ¬Έμμ΄ λλ¨Έμ§λ₯Ό λͺ
λ°±ν λ°©μμΌλ‘ unsigned long int
κ°μΌλ‘ λ³ννλ©° ν΄λΉ κΈ°μμμ μ ν¨ μ«μκ° μλ 첫 λ²μ§Έ λ¬Έμμμ λ©μΆλ€. (κΈ°μκ° 10λ³΄λ€ ν° κ²½μ° λμλ¬Έμ κΈμ 'A'κ° 10μ, 'B'κ° 11μ λνλ΄λ©°, κ·Έλ° μμΌλ‘ 'Z'κ° 35λ₯Ό λνλΈλ€.)
endptr
μ΄ NULLμ΄ μλλ©΄ strtoul()
μ 첫 λ²μ§Έ λΉμ ν¨ λ¬Έμμ μ£Όμλ₯Ό *endptr
μ μ μ₯νλ€. μ«μκ° μ ν μμμΌλ©΄ strtoul()
μ nptr
μ μλ κ°μ *endptr
μ μ μ₯νλ€. (κ·Έλ¦¬κ³ 0μ λ°ννλ€.) νΉν *nptr
μ΄ '\0'μ΄ μλλ° λ°ν μ **endptr
μ΄ '\0'μ΄λ©΄ λ¬Έμμ΄ μ μ²΄κ° μ ν¨ν κ²μ΄λ€.
strtoull()
ν¨μλ strtoul()
ν¨μμ²λΌ λμνλ unsigned long long int
κ°μ λ°ννλ€.
μλ κ°μ΄ μ€λ²νλ‘μ° λμ§ μμΌλ©΄ strtoul()
ν¨μλ λ³ν κ²°κ³Όλ₯Ό, λλ μμ μμ λΆνΈκ° μμμΌλ©΄ λΆνΈ μλ κ°μΌλ‘ ννν λ³ν κ²°κ³Όμ λ°μλ₯Ό λ°ννλ€. μ€λ²νλ‘μ°κ° μΌμ΄λλ©΄ strtoul()
μ ULONG_MAX
λ₯Ό λ°ννλ©° errno
λ₯Ό ERANGE
λ‘ μ€μ νλ€. κ°μ λ΄μ©μ΄ strtoull()
μ (ULONG_MAX
λμ ULLONG_MAX
λ‘) μ μ©λλ€.
EINVAL
- (C99μλ μμ) μ§μ ν
base
κ° μ§μνμ§ μλ κ°μ λ΄κ³ μλ€. ERANGE
- κ²°κ³Ό κ°μ΄ λ²μλ₯Ό λ²μ΄λ¬λ€.
ꡬνμμ λ³νμ μ ν μννμ§ μμ κ²½μ°μ (μ«μ μμ, 0 λ°ν) errno
λ₯Ό EINVAL
λ‘ μ€μ ν μλ μλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
strtoul() , strtoull() , strtouq()
|
μ€λ λ μμ μ± | MT-Safe locale |
strtoul()
: POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4.
strtoull()
: POSIX.1-2001, POSIX.1-2008, C99.
strtoul()
μ΄ μ±κ³΅κ³Ό μ€ν¨ μ΄λ μͺ½μμλ μ λ²νκ² 0μ΄λ ULONG_MAX
λ₯Ό (strtoull()
μμ ULLONG_MAX
) λ°νν μ μμΌλ―λ‘ νΈμΆ νλ‘κ·Έλ¨μμλ νΈμΆ μ μ errno
λ₯Ό 0μΌλ‘ μ€μ νκ³ μ νΈμΆ νμ errno
κ° 0 μλ κ°μΈμ§ κ²μ¬ν΄μ μ€λ₯κ° λ°μνλμ§ νμΈν΄μΌ νλ€.
"C" μΈμ λ‘μΊμμ λ€λ₯Έ μ«μ λ¬Έμμ΄λ€μ λ°μλ€μΌ μλ μλ€. (μλ₯Ό λ€μ΄ νμ¬ λ‘μΊμ μ² λ¨μ ꡬλΆμλ₯Ό μ§μν μλ μλ€.)
BSDμλ μμ ν μ μ¬νκ² μ μλ λ€μ ν¨μκ° μλ€.
u_quad_t strtouq(const char *nptr, char **endptr, int base);
νμ¬ μν€ν
μ²μ μλ ν¬κΈ°μ λ°λΌ strtoull()
μ΄λ strtoul()
κ³Ό λλ±ν μ μλ€.
μμ κ°μ μ ν¨ν κ²μΌλ‘ 보μ μ‘°μ©ν λλ±ν unsigned long int
κ°μΌλ‘ λ³ννλ€.
strtol(3) λ§€λ΄μΌ νμ΄μ§μ μλ₯Ό μ°Έκ³ νλΌ. μ΄ λ§€λ΄μΌ νμ΄μ§μμ κΈ°μ νλ ν¨μλ€κ³Ό μ¬μ© λ°©μμ΄ λΉμ·νλ€.
a64l(3)
, atof(3), atoi(3), atol(3), strtod(3), strtol(3), strtoumax(3)
2019-03-06