Strerror r
int strerror_r(int errnum, char *buf, size_t n);
<justify>Implementacja funkcji o działaniu podobnym do strerror. Niestety, wspominana funkcja strerror() nie jest bezpieczna w aplikacjach wielowątkowych, gdzie zalecane jest użycie właśnie strerror_r().</justify>
Parametry:
- errnum
- Numer błędu (najczęściej powiązany ze zmienną errno)
- buf
- Wskaźnik na łańcuch, do którego zostanie zapisana (zależna od implementacji) treść błędu o podanym numerze
Zwracana wartość:
Zwraca 0 w przypadku sukcesu oraz -1 w przypadku niepowodzenia.
Przykład
#include <stdio.h> int main(int argc, char* argv[]) { FILE *plik; char tresc[255]; plik = fopen ("clients.dat", "r"); /* otworzenie pliku do odczytu */ if ( !plik ) { /* w przypadku, gdy nie udało się otworzyć pliku... */ strerror_r (errno, tresc, strlen(tresc)); fprintf (stderr, "Blad przy otwieraniu pliku: %s", tresc); /*... wyświetla błąd */ return 1; } /* {operacje na pliku} */ fclose (plik); /* zamknięcie pliku */ return 0; }
W przypadku niepowodzenia (plik nie zostanie otworzony z pewnych względów), funkcja wyświetli błąd w stylu:
Blad przy otwieraniu pliku: No such file or directory
Zobacz też: