strerror, _strerror, _wcserror, __wcserror

Pobiera ciąg komunikatu o błędzie systemu (strerror, _wcserror) lub formatuje ciąg komunikatu o błędzie dostarczonego przez użytkownika (_strerror, __wcserror). Dostępne są bezpieczniejsze wersje tych funkcji; zobacz strerror_s, , _wcserror_s_strerror_s, , __wcserror_s.

Składnia

char * strerror(
   int errnum );

char * _strerror(
   const char *strErrMsg );

wchar_t * _wcserror(
   int errnum );

wchar_t * __wcserror(
   const wchar_t *strErrMsg );

Parametry

errnum
Numer błędu.

strErrMsg
Komunikat dostarczony przez użytkownika.

Wartość zwracana

Wszystkie te funkcje zwracają wskaźnik do ciągu komunikatu o błędzie w buforze magazynu lokalnego wątku należącego do środowiska uruchomieniowego. Później wywołania tego samego wątku mogą zastąpić ten ciąg.

Uwagi

Funkcja strerror mapuje errnum ciąg komunikatu o błędzie i zwraca wskaźnik do ciągu. Funkcje strerror i _strerror nie wyświetlają komunikatu. Aby wydrukować, wywołaj funkcję wyjściową, taką jak fprintf:

if (( _access( "datafile", 2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

Jeśli strErrMsg parametr jest przekazywany jako NULL, _strerror zwraca wskaźnik do ciągu. Zawiera on komunikat o błędzie systemu dla ostatniego wywołania biblioteki, który wygenerował błąd. Jeśli wywołasz __wcserrormetodę , ciąg komunikatu o błędzie zostanie zakończony znakiem nowego wiersza ('\n'). Inne funkcje nie dodają '\n'elementu . Gdy strErrMsg ciąg nie NULLma wartości , ciąg zawiera w kolejności: strErrMsg ciąg, dwukropek, spację, komunikat o błędzie systemu. Komunikat ciągu może mieć długość co najwyżej 94 znaków w wąskich znakach (_strerror) lub szerokości (__wcserror).

Rzeczywisty numer błędu dla _strerror elementu jest przechowywany w zmiennej errno. Aby uzyskać dokładne wyniki, wywołaj wywołanie _strerror bezpośrednio po procedurze biblioteki zwraca błąd. W przeciwnym razie późniejsze wywołania procedur biblioteki mogą zastąpić errno wartość.

_wcserror i __wcserror są odpowiednio wersjami strerror znaków i _strerror.

_strerror, _wcserrori __wcserror są specyficzne dla firmy Microsoft, a nie są częścią standardowej biblioteki języka C. Nie zalecamy używania ich w miejscu, w którym chcesz użyć kodu przenośnego. W przypadku zgodności ze standardową wersją C należy zamiast tego użyć polecenia strerror .

Aby uzyskać ciągi błędów, zalecamy strerror lub _wcserror zamiast przestarzałych _sys_errlist makr i _sys_nerr przestarzałych funkcji __sys_errlist wewnętrznych i __sys_nerr.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcserror strerror strerror _wcserror

Wymagania

Procedura Wymagany nagłówek
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

Zobacz przykład dla elementu perror.

Zobacz też

Manipulowanie ciągami
clearerr
ferror
perror, _wperror