CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
perror
PERROR
#include <stdlib.h> требуется только для
обьявления функции
void perror(string);
char *string; сообщение, поставляемое
пользователем
int errno; счетчик ошибок
int sys_nerr; число системных сообще-
ний
char sts_errlist[sys_nerr]; массив сообщений об
ошибках.
Описание.
Функция perror печатает сообщение об ошибке в stderr. В
этом сообщении аргумент string печатается первым, затем печатает-
ся двоеточие, системное сообщение об ошибке для последнего библи-
отечного вызова, выработавшего ошибку, и новая строка. Номер дей-
ствительной ошибки хранится в переменной errno, которая объявлена
на внешнем уровне. Системное сообщение об ошибке доступно через
переменную sys_errlist, которая является массивом сообщений для
счетчика ошибок.
Функция perror печатает приблизительное сообщение об ошиб-
ке, используя значение errno как индекс для sys_errlist. Значение
переменной sys_nerr определяется как максимальное число элементов
в массиве sys_errlist.
Чтобы выработать правильный результат, функция perror долж-
на быть вызвана сразу же после библиотечной процедуры, возвращаю-
щей ошибку. Иначе значение errno может быть перезаписано для
последующих вызовов.
Возвращаемое значение.
Функция perror не возвращает никакого значения.
См. также clearerr, ferror, strerror.
Замечание. В MS DOS некоторые значения errno, приведенные в
<errno.h>, не используются. Смотрите приложение "Сообщение об
ошибках", где приведен список значений errno, используемых в MS
DOS, и соответствующие сообщения об ошибках. Для значения errno,
не использующегося в MS DOS, функция perror печатает пустую стро-
ку.
Пример.
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <io.h>
#include <stdlib.h>
int fh1, fh2;
fh1 = open("data1", O_RDONLY);
if (fh1 == -1)
perror("open failed on input file");
fh2 = open("data2", O_WRONLY:O_TRUNC:O_CREAT,
S_IREAD:S_IWRITE);
if (fh2 == -1)
perror("open failed on output file");.
