Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


strtoul(3) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |ATTRIBUTES |VERSIONS |STANDARDS |HISTORY |CAVEATS |BUGS |EXAMPLES |SEE ALSO |COLOPHON

strtoul(3)               Library Functions Manualstrtoul(3)

NAME        top

       strtoul, strtoull, strtouq - convert a string to an unsigned long       integer

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <stdlib.h>unsigned long strtoul(const char *restrictnptr,char **_Nullable restrictendptr, intbase);unsigned long long strtoull(const char *restrictnptr,char **_Nullable restrictendptr, intbase);   Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):strtoull():           _ISOC99_SOURCE               || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

DESCRIPTION        top

       Thestrtoul() function converts the initial part of the string innptr to anunsigned long value according to the givenbase, which       must be between 2 and 36 inclusive, or be the special value 0.       The string may begin with an arbitrary amount of white space (as       determined byisspace(3)) followed by a single optional '+' or '-'       sign.  Ifbase is zero or 16, the string may then include a "0x"       or "0X" prefix, and the number will be read in base 16; ifbase is       zero or 2, the string may then include a "0b" or "0B" prefix, and       the number will be read in base 2; otherwise, a zerobase is taken       as 10 (decimal) unless the next character is '0', in which case it       is taken as 8 (octal).       The remainder of the string is converted to anunsigned long value       in the obvious manner, stopping at the first character which is       not a valid digit in the given base.  (In bases above 10, the       letter 'A' in either uppercase or lowercase represents 10, 'B'       represents 11, and so forth, with 'Z' representing 35.)       Ifendptr is not NULL, and thebase is supported,strtoul() stores       the address of the first invalid character in*endptr.  If there       were no digits at all,strtoul() stores the original value ofnptr       in*endptr (and returns 0).  In particular, if*nptr is not '\0'       but**endptr is '\0' on return, the entire string is valid.       Thestrtoull() function works just like thestrtoul() function but       returns anunsigned long long value.

RETURN VALUE        top

       Thestrtoul() function returns either the result of the conversion       or, if there was a leading minus sign, the negation of the result       of the conversion represented as an unsigned value, unless the       original (nonnegated) value would overflow; in the latter case,strtoul() returnsULONG_MAXand setserrno toERANGE.  Precisely       the same holds forstrtoull() (withULLONG_MAXinstead ofULONG_MAX).

ERRORS        top

       This function does not modifyerrno on success.EINVAL(not in C99) The givenbase contains an unsupported value.ERANGEThe resulting value was out of range.       The implementation may also seterrno toEINVALin case no       conversion was performed (no digits seen, and 0 returned).

ATTRIBUTES        top

       For an explanation of the terms used in this section, seeattributes(7).       ┌───────────────────────────────┬───────────────┬────────────────┐       │InterfaceAttributeValue│       ├───────────────────────────────┼───────────────┼────────────────┤       │strtoul(),strtoull(),        │ Thread safety │ MT-Safe locale │       │strtouq()                     │               │                │       └───────────────────────────────┴───────────────┴────────────────┘

VERSIONS        top

       In locales other than the "C" locale, other strings may be       accepted.  (For example, the thousands separator of the current       locale may be supported.)       BSD also hasu_quad_t strtouq(const char *nptr, char **endptr, intbase);       with completely analogous definition.  Depending on the wordsize       of the current architecture, this may be equivalent tostrtoull()       or tostrtoul().

STANDARDS        top

       C23, POSIX.1-2024.

HISTORY        top

strtoul()              POSIX.1-2001, C89, SVr4.strtoull()              POSIX.1-2001, C99.       "0b", "0B"              C23.  glibc 2.38.  (Not in POSIX.)

CAVEATS        top

       Sincestrtoul() can legitimately return 0 orULONG_MAX(ULLONG_MAX       forstrtoull()) on both success and failure, the calling program       should seterrno to 0 before the call, and then determine if an       error occurred by checking whethererrno has a nonzero value after       the call.

BUGS        top

Signed numbers       Some negative values are considered valid input and are silently       converted tounsigned long.White space       These functions silently accept leading whitespace.isalnum(3)       To reject white space and/or a sign, callisalnum(3) beforestrtoul().

EXAMPLES        top

       See the example on thestrtol(3) manual page; the use of the       functions described in this manual page is similar.

SEE ALSO        top

a64l(3),atof(3),atoi(3),atol(3),strtod(3),strtol(3),strtoumax(3)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17strtoul(3)

Pages that refer to this page:capsh(1)a64l(3)atof(3)atoi(3)sscanf(3)strtod(3)strtoimax(3)strtol(3)bpf-helpers(7)logrotate(8)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp