strerror_s, _strerror_s, _wcserror_s, __wcserror_s
Получено сообщение об ошибке системы (strerror_s" _wcserror_s) или напечатать сообщение об ошибке (передаваемый пользователем_strerror_s" __wcserror_s).Эти версии strerror, _strerror, _wcserror, __wcserror со службами расширений безопасности, как описано в разделе Средства безопасности в 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
Параметры
buffer
Буфер для хранения строки ошибки.numberOfElements
Размер буфера.errnum
Номер ошибки.strErrMsg
Передаваемый пользователем сообщение.
Возвращаемое значение
Нуль, если успешно, код ошибки при сбое.
Условия возникновения ошибок
buffer |
numberOfElements |
strErrMsg |
Содержимое buffer |
---|---|---|---|
NULL |
any |
any |
нет |
any |
0 |
any |
не было |
Заметки
strerror_s сопоставления функции errnum в строку сообщения об ошибке, возвращая указатель на строку._strerror_s не принимает номер ошибки. он использует текущее значение errno указать соответствующее сообщение.Ни одного strerror_s ни _strerror_s фактически печатает сообщение: Для этого необходимо вызвать функцию как output fprintf.
if (( _access( "datafile",2 )) == -1 )
{
_strerror_s(buffer, 80);
fprintf( stderr, buffer );
}
If strErrMsg существует NULL" _strerror_s возвращает указатель на строку, содержащую сообщение об ошибке системы для последнего вызова библиотеки, вызвавшего ошибку.Строка сообщения об ошибке завершается символом перевода строки (\ n ").If strErrMsg не равно NULLпосле этого _strerror_s возвращает указатель на строку, содержащую (в порядке сообщения строки), двоеточие, пробел, сообщение о системной ошибке для последнего вызова библиотеки формирование ошибку, а символ перевода строки.Ваше сообщение строки может быть не более 94 символов.
Эти функции усекают сообщение об ошибке, если его длина превышает numberOfElements -1.Результирующая строка in buffer всегда null-завершит.
Фактический номер ошибки _strerror_s хранит в переменной errno.Системные сообщения об ошибках осуществляется через переменную _sys_errlistмассив сообщений, приказал номеру ошибки._strerror_s обращается к соответствующее сообщение об ошибке с помощью errno значение переменной в качестве индекса _sys_errlist.Значение переменной _sys_nerr определяет, как максимальное количество элементов в _sys_errlist массив.Предоставить явные вызов _strerror_s сразу после библиотечная процедура возвращает с ошибкой.В противном случае последующие вызовы strerror_s OR _strerror_s можно переписать errno значения.
_wcserror_sи __wcserror_sверсия расширенных символов strerror_sи _strerror_sсоответственно.
Эти функции проверяют их параметры.Если буфер NULL или, если параметр размера 0, то вызывается обработчик параметра, недопустимо, как описано в разделе Проверка параметров .Если выполнение может быть продолжено, то функции возвращают EINVAL и errno В EINVAL.
_strerror_s, _wcserror_s, и __wcserror_sне находится часть определения ANSI вместо этого расширения microsoft.Не используйте их где переносимость пожелана; для совместимости ANSI, используйтеstrerror_sвместо этого.
В C++ с помощью этих функций упрощает перегрузками шаблона; перегруженные методы могут определять длина буфера, автоматически, устранение необходимости указывать аргумент size.Дополнительные сведения см. в разделе Предоставляйте перегруженный шаблона.
Отладочной версии этих функций сначала заполняют буфер с 0xFD.Чтобы отключить эту реакция на событие, воспользуйтесь _CrtSetDebugFillThreshold.
Сопоставления подпрограммы Родов-Текста
Подпрограмма TCHAR.H |
_MBCS не заданные _UNICODE & |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tcserror_s |
strerror_s |
strerror_s |
_wcserror_s |
Требования
Процедура |
Обязательный заголовок |
---|---|
strerror_s, _strerror_s |
<string.h> |
_wcserror_s, __wcserror_s |
<string.h> OR <wchar.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
См. пример perror.
Эквивалент в .NET Framework
System:: исключение:: Сообщение