strtoul(3)

NAAM
strtoul, strtoull, strtouq - converteert een tekenreeks naar een positief lang geheel getal

BIBLIOTHEEK
Standaard C bibliotheek (libc, -lc)

SAMENVATTING
#include <stdlib.h>

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

    Feature Test Macro Requirements voor glibc (zie feature_test_macros(7)):

strtoull():
    _ISOC99_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

BESCHRIJVING
De strtuol() functie converteert het initiële deel van een tekenreeks in nptr naar een positief lang geheel getal met als grondtal als grondtal, grondtal moet liggen tussen 2 en 36 (inclusief deze grenzen), of de speciale waarde 0.

De tekenreeks mag beginnen met een willekeurig aantal witruimtes (zoals bepaald door isspace(3)) gevolgd door een enkel optioneel teken '+' or '-'. Als het grondtal nul of 16 is, dan mag de string "0x" of "0X" bevatten en wordt het getal gelezen met 16 als grondtal; Als het grondtal nul of 2 is, dan mag de string "0b" of "0B" bevatten en wordt het getal gelezen met 2 als grondtal; in andere gevallen zal het grondtal 0 geïnterpreteerd worden als 10 (decimaal) behalve als het volgende teken '0' is, in welk geval het geïnterpreteerd wordt als 8 (octaal).

De rest van de tekenreeks zal geconverteerd worden naar een long waarde in de voor de hand liggende manier, eindigende bij het eerste ongeldige teken in het gekozen grondtal. (Grondtallen groter dan 10, vertegenwoordigd de letter 'A' in zowel hoofd- als kleine letter 10, 'B' vertegenwoordigd 11, en zo voorts, met 'Z' vertegenwoordigde 35.)

Zodra endptr niet NULL is, zal strtoul het adres van het eerste ongeldige teken in *endptr opslaan. Als er geen enkel cijfer was dan bewaart strtoul() de originele waarde van nptr in *endptr (en geeft een 0 terug). In het bijzonder, als *nptr niet gelijk is aan '\0' maar **endptr is '\0' bij terugkeer, dan is de hele tekenreeks geldig.

De strtoull() functie werkt net als de strtoul() functie maar geeft een positief-lang-lang gehele waarde terug.

EIND WAARDE
De strtoul() functie retourneert het resultaat van een conversie, of als er sprake was van een leidend min-teken, de negatie van het resultaat van de conversie gerepresenteerd als een positieve waarde,, behalve als de originele (niet-negatie) waarde zou onderlopen; in het laatste geval, retourneert strtoul() ULONG_MAX en zet errno op ERANGE. Precies hetzelfde is geldig voor strtoull() (met ULLONG_MAX in plaats van ULONG_MAX).

FOUTEN
Deze functie verandert errno niet bij succes.

EINVAL
    (niet in C99) Het gegeven grondtal bevat een niet ondersteunde waarde.

ERANGE
    De resulterende waarde was buiten bereik.

De implementatie mag errno zetten op EINVAL in het geval dat er geen omzetting plaats vond (geen cijfers gezien en 0 geretourneerd).

ATTRIBUTEN
Voor een uitleg van de termen zoals gebruikt in deze sectie, zie attributen(7).
Interface | Attribuut | Waarde
strtoul(), strtoull(), strtouq() | Thread veilig | MT-Safe taalgebied

VERSIES
Volgens POSIX.1, in taalgebieden anders dan "C" en "POSIX", mogen deze functies andere, implementatie afhankelijke numerieke tekenreeksen accepteren.

BSD heeft ook

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

met complete vergelijkbare definitie. Afhankelijk van de woordgrootte van de huidige architectuur, kan dit equivalent zijn aan strtoull() of aan strtoul().

STANDAARDEN
C23, POSIX.1-2024.

HISTORIE

strtoul()
    POSIX.1-2001, C89, SVr4.

strtoull()
    POSIX.1-2001, C99.

"0b", "0B"
    C23. glibc 2.38. (Niet in POSIX.)

VOORBEHOUD
Omdat strtoul() legitiem 0, ULONG_MAX, of ULONG_MIN (LLONG_MAX of LLONG_MIN voor strtoull()) kan retourneren bij zowel succes of falen, moet het aanroepende programma errno op 0 zetten voor de aanroep, en vervolgens bepalen of een fout optrad door te controleren of errno een niet-nul waarde heeft na de aanroep.

BUGS

  Getekende getallen
Sommige negatieve waarden worden beschouwd als geldige invoer and worden stilzwijgend omgezet naar een unsigned long waarde.

  witruimte
Deze functies accepteren voorafgaande witruimtes stilzwijgend.

  isalnum(3)
Om witruimte en/of een teken te weigeren, roep isalnum(3) aan voor strtoul()

VOORBEELDEN
Zie het voorbeeld in de strtol(3) handleiding; het gebruik van de functies beschreven in deze handleiding is vergelijkbaar.

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

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.