Предыдущая | Оглавление | Следующая |
Получить ошибку в виде читабельной строки
#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)); } |
Предыдущая | Оглавление | Следующая |