Предыдущая | Оглавление | Следующая |
Хранит номер ошибки, произошедшей при последнем системном вызове
#include <errno.h>
int errno;
Эта переменная хранит ошибку для большинства системных вызовов. Функции вроде socket() и listen() возвращают -1 при ошибке, а конкретный номер ошибки сохраняется в errno, чтобы уточнить, что именно произошло не так.
Заголовок errno.h описывает несколько констант-символических имен ошибок, например EADDRINUSE, EPIPE, ECONNREFUSED, т.п. Твое руковоство man перечисляет их все, и ты можешь использовать эту информацию для обработки разных ошибок по-разному.
Хотя чаще всего люди просто вызывают perror() или strerror() для получения текстового описания ошибки.
Значение этой переменной - номер последней произошедшей ошибки, или код "успеха" если последний вызов прошел успешно.
s = socket(PF_INET, SOCK_STREAM, 0); if (s == -1) { perror("socket"); // или strerror() } tryagain: if (select(n, &readfds, NULL, NULL) == -1) { // ошибка!! // нас прервали, снова вызываем select(): if (errno == EINTR) goto tryagain; // АААА! goto!!! // иначе ошибка серьезнее: perror("select"); exit(1); } |
Предыдущая | Оглавление | Следующая |