error(3) Library Functions Manual error(3) NUME error, error_at_line, error_message_count, error_one_per_line, error_print_progname - funcii de raportare a erorilor glibc BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include void error(int status, int errnum, const char *format, ...); void error_at_line(int status, int errnum, const char *filename, unsigned int linenum, const char *format, ...); extern unsigned int error_message_count; extern int error_one_per_line; extern void (*error_print_progname)(void); DESCRIERE error() este o funcie generala de raportare a erorilor. Aceasta curaa stdout, apoi transmite la stderr numele programului, doua puncte i un spaiu, mesajul specificat de irul de format in stil printf(3) format i, daca errnum este diferita de zero, un al doilea punct i un spaiu urmat de irul dat de strerror(errnum). Orice argumente necesare pentru format trebuie sa urmeze format in lista de argumente. Ieirea se termina cu un caracter de linie noua. Numele programului afiat de error() este valoarea variabilei globale program_invocation_name(3). program_invocation_name are iniial aceeai valoare ca i argv[0] din main(). Valoarea acestei variabile poate fi modificata pentru a schimba rezultatul lui error(). Daca status are o valoare diferita de zero, atunci error() apeleaza exit(3) pentru a termina programul folosind valoarea data ca stare de ieire; in caz contrar, returneaza dupa imprimarea mesajului de eroare. Funcia error_at_line() este exact la fel ca error(), cu excepia adaugarii argumentelor filename i linenum. Rezultatul produs este acelai ca i pentru error(), cu excepia faptului ca dupa numele programului sunt scrise: doua puncte, valoarea lui filename, doua puncte i valoarea lui linenum. Valorile preprocesorului __LINE__ i __FILE__ pot fi utile atunci cand se apeleaza error_at_line(), dar pot fi utilizate i alte valori. De exemplu, aceste argumente se pot referi la o locaie dintr-un fiier de intrare. In cazul in care variabila globala error_one_per_line este stabilita la o valoare diferita de zero, o secvena de apeluri error_at_line() cu aceeai valoare a filename i linenum va avea ca rezultat emiterea unui singur mesaj (primul). Variabila globala error_message_count numara numarul de mesaje care au fost emise de error() i error_at_line(). Daca variabilei globale error_print_progname i se atribuie adresa unei funcii (adica nu este NULL), atunci acea funcie este apelata in loc sa se prefixeze mesajul cu numele programului i doua puncte. Funcia ar trebui sa afieze un ir de caractere adecvat in stderr. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +----------------+---------------------+-------------------------------+ |Interfaa | Atribut | Valoare | +----------------+---------------------+-------------------------------+ |error() | Sigurana firelor | MT-Safe locale | +----------------+---------------------+-------------------------------+ |error_at_line() | Sigurana firelor | MT-Unsafe race: | | | | error_at_line/ | | | | error_one_per_line locale | +----------------+---------------------+-------------------------------+ Variabila interna error_one_per_line este accesata (fara nici o forma de sincronizare, dar din moment ce este un int folosit o singura data, ar trebui sa fie suficient de sigur) i, daca error_one_per_line este stabilita la o valoare diferita de zero, variabilele statice interne (neexpuse utilizatorilor) folosite pentru a pastra ultimul nume de fiier tiparit i numarul de linie sunt accesate i modificate fara sincronizare; actualizarea nu este atomica i are loc inainte de dezactivarea anularii, astfel incat poate fi intrerupta numai dupa ce una dintre cele doua variabile este modificata. Dupa aceea, error_at_line() seamana foarte mult cu error(). STANDARDE GNU. CONSULTAI I err(3), errno(3), exit(3), perror(3), program_invocation_name(3), strerror(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 31 octombrie 2023 error(3)