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

#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ż:

0 komentarzy