Biblioteka standardowa » String.h

Strerror r

  • 2010-10-31 18:27
  • 0 komentarzy
  • 418 odsłon
  • Oceń ten tekst jako pierwszy
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
nDługość tego łańcucha</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ż: