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]]

0 komentarzy