Получить ошибку в виде читабельной строки
- Прототипы
-
#include <stdio.h>
void perror(const char *s);
#include <string.h>
char *strerror(int errnum);
- Описание
-
Поскольку много функций возвращают при ошибке -1 и сохраняют ее номер в переменной errno, было бы удобно каким-то образом преобразовывать этот номер в форме, которую можно понять.
К счастью, perror() этим и занимается. Если хочешь получить расширенную информацию, передай ей
s (или можешь передать NULL вместо s.)
Эта функция берет значение errno, типа ECONNRESET, и выводит описание, типа "Connection
reset by peer."
(Конечно, это описание будет на английском языке - прим. перев.)
Функция strerror() похожа на perror(), но просто возвращает указатель на строку с описанием данной ошибки (которую ты передаешь параметром errnum.)
- Возвращаемое значение
-
strerror() возвращает указатель на описание ошибки.
- Пример
-
int s;
s = socket(PF_INET, SOCK_STREAM, 0);
if (s == -1) { // произошла ошибка
// выводит "ошибка socket: " + сообщение об ошибке:
perror("ошибка socket");
}
// аналогично:
if (listen(s, 10) == -1) {
// выводит "ошибка: " + сообщение об ошибке errno:
printf("ошибка: %s\n", strerror(errno));
}
|
- См. также
-
errno
|