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) REZUMAT #include unsigned long strtoul(const char *restrict nptr, char **restrict endptr, int baza); unsigned long long strtoull(const char *restrict nptr, char **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 apoi un prefix ,,0x", iar numarul va fi citit in baza 16; in caz contrar, o baza zero este considerata ca fiind 10 (zecimal), cu excepia cazului in care urmatorul caracter este ,,0", caz in care este considerat ca fiind 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() | | | +-------------------------------+---------------------+----------------+ STANDARDE C11, POSIX.1-2008. ISTORIC strtoul() POSIX.1-2001, C89, SVr4. strtoull() POSIX.1-2001, C99. NOTE 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. 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(). Valorile negative sunt considerate intrari valide i sunt convertite in mod silenios in valoarea echivalenta unsigned long. 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.06 19 decembrie 2023 strtoul(3)