Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Получает системную строку сообщения об ошибке (strerror, _wcserror) или форматирует пользовательскую строку сообщения об ошибке (_strerror, __wcserror). Доступны более безопасные версии этих функций; см. , _wcserror_s_strerror_s, __wcserror_s.strerror_s
Синтаксис
char * strerror(
int errnum );
char * _strerror(
const char *strErrMsg );
wchar_t * _wcserror(
int errnum );
wchar_t * __wcserror(
const wchar_t *strErrMsg );
Параметры
errnum
Номер ошибки.
strErrMsg
Пользовательское сообщение.
Возвращаемое значение
Все эти функции возвращают указатель на строку сообщения об ошибке в буфере локального хранилища потока, принадлежаемом среде выполнения. Последующие вызовы в том же потоке могут перезаписать эту строку.
Замечания
Функция strerror сопоставляет errnum со строкой сообщения об ошибке и возвращает указатель на строку. _strerror Функции strerror и функции на самом деле не печатают сообщение. Чтобы распечатать, вызовите выходную функцию, например fprintf:
if (( _access( "datafile", 2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
Если strErrMsg передается как NULL, _strerror возвращает указатель на строку. Он содержит системное сообщение об ошибке для последнего вызова библиотеки, создавшего ошибку. При вызове __wcserrorстрока сообщения об ошибке завершается символом новой строки ('\n'). Другие функции не добавляются '\n'. Если strErrMsg это не NULLтак, строка содержит в порядке: strErrMsg строка, двоеточие, пробел, системное сообщение об ошибке. Строковое сообщение может быть длиной не более 94 символов в узких (_strerror) или широких (__wcserror) символах.
Фактическое число ошибок, для которых _strerror хранится в переменной errno. Чтобы получить точные результаты, вызов сразу _strerror после подпрограммы библиотеки возвращает ошибку. В противном случае последующие вызовы подпрограмм библиотеки могут перезаписать errno значение.
_wcserror и __wcserror — это версии strerror и _strerror с расширенными символами.
_strerror, _wcserrorи __wcserror являются определенными корпорацией Майкрософт, а не частью стандартной библиотеки C. Мы не рекомендуем использовать их, где требуется переносимый код. Вместо этого используйте strerror для обеспечения совместимости C уровня "Стандартный".
Чтобы получить строки ошибок, рекомендуется strerror или _wcserror вместо устаревших макросов и _sys_nerr устаревших внутренних _sys_errlist функций __sys_errlist и __sys_nerr.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
| Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror, __wcserror |
<string.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример см. в примере perror.