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");.