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 __wcserror
metodę , ciąg komunikatu o błędzie zostanie zakończony znakiem nowego wiersza ('\n'
). Inne funkcje nie dodają '\n'
elementu . Gdy strErrMsg
ciąg nie NULL
ma 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
, _wcserror
i __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 zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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
.