perror, _wperror
Напечатать сообщение об ошибке.
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
Параметры
- string
Строковое сообщение, которое необходимо вывести на печать.
Заметки
perror функция выводит сообщение об ошибке stderr._wperror версия расширенных символов _perror; string аргумент _wperror строка символов._wperror и _perror поступайте совпадают, в противном случае.
Сопоставления подпрограммы Родов-Текста
Подпрограмма TCHAR.H |
_MBCS не заданные _UNICODE & |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
string печатает во-первых, за которым следует двоеточие, то сообщение об ошибке системы для последнего вызова библиотеки, вызвавшего ошибку, и наконец символом новой строки.If string указатель null или указатель на строку со значением NULL perror печатает только сообщение об ошибке системы.
Номер ошибки, хранящийся в переменной errno (определенное в ERRNO.H).Системные сообщения об ошибках осуществляется через переменную _sys_errlistмассив сообщений, приказал номеру ошибки.perror выводится соответствующее сообщение об ошибке с помощью errno значение в качестве индекса на _sys_errlist.Значение переменной _sys_nerr определяет, как максимальное количество элементов в _sys_errlist массив.
Точные результаты вызова perror сразу после библиотечная процедура возвращает с ошибкой.В противном случае последующие вызовы могут перезапись errno значения.
В операционной системе windows, некоторые errno значения, перечисленные в ERRNO.H неиспользуемый.Эти значения зарезервировано для использования операционной системой UNIX.См. _doserrno, errno, _sys_errlist и _sys_nerr для списка errno значения, используемые операционной системы windows.perror выводит пустую строку для любых errno это значение не используется такими платформами.
Требования
Процедура |
Обязательный заголовок |
---|---|
perror |
<stdio.h> OR <stdlib.h> |
_wperror |
<stdio.h> OR <wchar.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Все версии Библиотеки времени выполнения C.
Пример
// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>
int main( void )
{
int fh;
if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
{
/* Three ways to create error message: */
perror( "perror says open failed" );
printf( "strerror says open failed: %s\n",
strerror( errno ) ); // C4996
printf( _strerror( "_strerror says open failed" ) ); // C4996
// Note: strerror and _strerror are deprecated; consider
// using strerror_s and _strerror_s instead.
}
else
{
printf( "open succeeded on input file\n" );
_close( fh );
}
}
Output
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.