Strerror r
ceer
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 <font color="gray">strerror_r()</span>.</justify>
Parametry:<dl><dt>errnum</dt><dd>Numer błędu (najczęściej powiązany ze zmienną Errno)</dd><dt>buf</dt><dd>Wskaźnik na łańcuch, do którego zostanie zapisana (zależna od implementacji) treść błędu o podanym numerze</dd></dl><dt>n</dt><dd>Długość tego łańcucha</dd></dl>
Zwracana wartość:
Zwraca 0 w przypadku sukcesu oraz -1 w przypadku niepowodzenia.
Przykład
```c #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`
____
<b>Zobacz też:</b>
* [[C/errno]]
* [[C/perror]]
* [[C/strerror]]
* [[C/clearerr]]
* [[C/stderr]]