Udostępnij za pośrednictwem


strerror_s, _strerror_s, _wcserror_s, __wcserror_s

Komunikat o błędzie systemu (strerror_s, _wcserror_s) lub wydrukować komunikat o błędzie dostarczone przez użytkownika (_strerror_s, __wcserror_s).Są to wersje strerror, _strerror, _wcserror, __wcserror z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.

errno_t strerror_s(
   char *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t _strerror_s(
   char *buffer,
   size_t numberOfElements,
   const char *strErrMsg 
);
errno_t _wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t __wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   const wchar_t *strErrMsg 
);
template <size_t size>
errno_t strerror_s(
   char (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t _strerror_s(
   char (&buffer)[size],
   const char *strErrMsg 
); // C++ only
template <size_t size>
errno_t _wcserror_s(
   wchar_t (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t __wcserror_s(
   wchar_t (&buffer)[size],
   const wchar_t *strErrMsg 
); // C++ only

Parametry

  • buffer
    Bufor, aby pomieścić ciąg błędu.

  • numberOfElements
    Rozmiar buforu.

  • errnum
    Numer błędu.

  • strErrMsg
    Wiadomości dostarczone przez użytkownika.

Wartość zwracana

Zero, jeśli kończy się pomyślnie, kod błędu w przypadku awarii.

Błąd Condtions

buffer

numberOfElements

strErrMsg

Zawartośćbuffer

NULL

wszelkie

wszelkie

n/d!

wszelkie

0

wszelkie

Nie zmodyfikowano

Uwagi

strerror_s Działać mapy errnum ciąg komunikat o błędzie, zwracanie wskaźnik do ciągu._strerror_snie przyjmuje numer błędu; korzysta z bieżącą wartość errno , aby określić odpowiedni komunikat.Ani strerror_s ani _strerror_s rzeczywiście drukuje wiadomość:, musisz wywołania funkcji danych wyjściowych, takich jak fprintf:

if (( _access( "datafile",2 )) == -1 )
{
   _strerror_s(buffer, 80);
   fprintf( stderr, buffer );
}

Jeśli strErrMsg jest NULL, _strerror_s zwraca wskaźnik do ciąg zawierający komunikat o błędzie systemu dla ostatniego wywołania biblioteki, które powoduje błąd.Ciąg komunikat o błędzie jest wypowiedziana przez znak nowego wiersza (\n).Jeśli strErrMsg nie jest równa NULL, następnie _strerror_s zwraca wskaźnik do ciąg zawierający (w podanej kolejności), wiadomość ciąg, dwukropek, spację, komunikat o błędzie systemu dla ostatniego wywołania biblioteki produkujących błąd i znak nowego wiersza.Wiadomość ciąg może być co najwyżej 94 znaków.

Te funkcje obciąć komunikat o błędzie, jeśli jego długość przekracza numberOfElements -1.Wynikowy ciąg w buffer jest zawsze zakończonym znakiem null.

Żaden numer błędu dla _strerror_s jest przechowywane w zmiennej errno.Komunikaty o błędach systemu są dostępne za pośrednictwem zmiennej _sys_errlist, który jest tablicą wiadomości uporządkowane według numer błędu._strerror_suzyskuje dostęp do wiadomości odpowiednie błąd za pomocą errno wartość jako indeks w zmiennej _sys_errlist.Wartość zmiennej _sys_nerr jest zdefiniowany jako maksymalna liczba elementów w _sys_errlist tablicy.W celu uzyskania dokładnych wyników, call _strerror_s natychmiast po rutynowych biblioteki zwraca błąd.Inaczej, kolejne wywołania strerror_s lub _strerror_s można zastąpić errno wartości.

_wcserror_si __wcserror_swersji szerokich znaków z strerror_si _strerror_s, odpowiednio.

Te funkcje sprawdzania poprawności ich parametrów.Jeśli bufor jest NULL lub jeśli parametr size jest 0, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru .Jeśli wykonanie może kontynuować, funkcje zwracają wartość EINVAL i errno do EINVAL.

_strerror_s, _wcserror_s,i __wcserror_s nie są częścią definicji ANSI, ale zamiast tego są rozszerzenia Microsoft.Nie należy używać ich gdzie mobilność jest pożądane; zgodność ANSI, użyj strerror_s zamiast.

W języku C++ korzystając z tych funkcji jest uproszczona poprzez overloads szablonu; overloads można wywnioskować strony długość buforu automatycznie, eliminując konieczność należy określić argument rozmiar.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Wersje do debugowania te funkcje najpierw wypełnić bufor z 0xFD.Aby wyłączyć to zachowanie, należy użyć _CrtSetDebugFillThreshold.

Tekst rodzajowy rutynowych mapowania

TCHAR.Rutynowe H

_UNICODE & Nie zdefiniowano _MBCS

_MBCS, definicja

_UNICODE, definicja

_tcserror_s

strerror_s

strerror_s

_wcserror_s

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

strerror_s, _strerror_s

<string.h>

_wcserror_s, __wcserror_s

<string.h> lub <wchar.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

Zobacz przykład dla perror.

Odpowiednik w programie .NET Framework

System::Exception::Message

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

clearerr

ferror

perror, _wperror