strtoul(3) Library Functions Manual strtoul(3) NUME strtoul, strtoull, strtouq - convertete un ir de caractere intr-un intreg lung fara semn BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include unsigned long strtoul(const char *restrict nptr, char **_Nullable restrict endptr, int baza); unsigned long long strtoull(const char *restrict nptr, char **_Nullable restrict endptr, int baza); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): strtoull(): _ISOC99_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE DESCRIERE Funcia strtoul() convertete partea iniiala a irului din nptr intr-o valoare unsigned long in funcie de baza data, care trebuie sa fie cuprinsa intre 2 i 36 inclusiv, sau sa fie valoarea speciala 0. irul poate incepe cu o cantitate arbitrara de spaiu alb (determinata de isspace(3)), urmata de un singur semn opional ,,+" sau ,,-". Daca baza este zero sau 16, irul poate include un prefix ,,0x" sau ,,0X", iar numarul va fi citit in baza 16; daca baza este zero sau 2, irul poate include un prefix ,,0b" sau ,,0B", iar numarul va fi citit in baza 2; altfel, o baza zero este considerata 10 (zecimal), cu excepia cazului in care urmatorul caracter este ,,0", caz in care este considerata 8 (octal). Restul irului este convertit intr-o valoare unsigned long in mod evident, oprindu-se la primul caracter care nu este o cifra valida in baza data; (in bazele mai mari de 10, litera ,,A", fie cu majuscula, fie cu minuscula, reprezinta 10, ,,B" reprezinta 11, i aa mai departe, ,,Z" reprezentand 35). Daca endptr nu este NULL, iar baza este acceptata, strtoul() stocheaza adresa primului caracter nevalid in *endptr. In cazul in care nu au existat deloc cifre, strtoul() stocheaza valoarea originala a nptr in *endptr (i returneaza 0). In special, daca *nptr nu este ,,\0", dar **endptr este ,,\0" la returnare, intregul ir este valid. Funcia strtoull() funcioneaza la fel ca funcia strtoul(), dar returneaza o valoare unsigned long long. VALOAREA RETURNATA Funcia strtoul() returneaza fie rezultatul conversiei, fie, in cazul in care a existat un semn minus, negaia rezultatului conversiei, reprezentat ca o valoare fara semn, cu excepia cazului in care valoarea originala (fara semn) ar fi depaita; in acest din urma caz, strtoul() returneaza ULONG_MAX i configureaza errno la ERANGE. Exact acelai lucru este valabil i pentru strtoull() (cu ULLONG_MAX in loc de ULONG_MAX). ERORI-IEIRE Aceasta funcie nu modifica errno in caz de succes. EINVAL (nu in C99) baza data conine o valoare neacceptata. ERANGE Valoarea rezultata a fost in afara intervalului. Implementarea poate, de asemenea, sa stabileasca errno la EINVAL in cazul in care nu a fost efectuata nicio conversie (nu se vede nicio cifra i se returneaza 0). ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +-------------------------------+---------------------+----------------+ |Interfaa | Atribut | Valoare | +-------------------------------+---------------------+----------------+ |strtoul(), strtoull(), | Sigurana firelor | MT-Safe locale | |strtouq() | | | +-------------------------------+---------------------+----------------+ VERSIUNI In alte configuraii regionale decat ,,C", pot fi acceptate i alte iruri; (de exemplu, poate fi acceptat separatorul de mii din configuraia regionala curenta). BSD are de asemenea u_quad_t strtouq(const char *nptr, char **endptr, int base); cu o definiie complet analoaga. In funcie de dimensiunea cuvintelor din arhitectura curenta, acest lucru poate fi echivalent cu strtoull() sau cu strtoul(). STANDARDE C23, POSIX.1-2024. ISTORIC strtoul() POSIX.1-2001, C89, SVr4. strtoull() POSIX.1-2001, C99. ,,0b", ,,0B" C23. glibc 2.38. (Nu exista in POSIX.) PRECAUII Deoarece strtoul() poate returna in mod legitim 0 sau ULONG_MAX (ULLONG_MAX pentru strtoull()) atat in caz de succes, cat i in caz de eec, programul apelant ar trebui sa stabileasca errno la 0 inainte de apel, iar apoi sa determine daca s-a produs o eroare verificand daca errno are o valoare diferita de zero dupa apel. ERORI Numere cu semn Valorile negative sunt considerate intrari valide i sunt convertite in mod silenios in valoarea echivalenta unsigned long. Spaiu alb Aceste funcii accepta in mod silenios spaiile albe la inceput. isalnum(3) Pentru a respinge spaiul alb i/sau un semn, apelai isalnum(3) inainte de strtoul(). EXEMPLE A se vedea exemplul de pe pagina de manual strtol(3); utilizarea funciilor descrise in aceasta pagina de manual este similara. CONSULTAI I a64l(3), atof(3), atoi(3), atol(3), strtod(3), strtol(3), strtoumax(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.18 8 februarie 2026 strtoul(3)