Что ж, поскольку при выполнении чего-либо обычно возникают ошибки, лучше всего поискать на странице man
что-нибудь.
Например, если вы набрали errno
из 34 от вашего fscanf()
вызова, вы сначала должны сделать:
grep 34 $(find /usr/include -name '*errno*h')
чтобы выяснить, в чем была ошибка:
/usr/include/bits/errno.h:#define ERANGE 34 /* Math result not representable. */
/usr/include/asm-generic/errno-base.h:#define ERANGE 34 /* Math result not ... */
Затем, глядя на страницу man
для fscanf()
, вы видите:
ERANGE - The result of an integer conversion would exceed the size
that can be stored in the corresponding integer type.
и вы (надеюсь) сможете оттуда это выяснить.
Если вы хотите получить список ошибок и (краткое) описание, измените grep
выше следующим образом:
grep define $(find /usr/include -name '*errno*h') | less
и просмотрите вывод.
И, если вы до сих пор не знаете об ошибке и ее причинах (описания немного краткие, я согласен), я бы просто сунул ее (например, EADDRNOTAVAIL
) в это маленькое диалоговое окно в правом верхнем углу браузера 1 , и вы получите что-то вроде this (или много других замечательных страниц):
Невозможно назначить запрошенный адрес
Вы пытаетесь bind(2)
на локальный адрес, который не является локальным. Например, если IP-адреса компьютера равны 127.0.0.1
и 1.2.3.4
и вы пытаетесь привязать к 1.2.3.5
, вы получите эту ошибку. Убедитесь, что адрес, с которым вы пытаетесь связать, существует на компьютере, с которого вы пытаетесь его связать.
Эта ошибка также может появиться, если вы выполняете «предварительно связанное соединение», когда вы сначала привязываетесь к локальному порту, а затем делаете исходящее соединение с сокетом. Если локальный порт уже подключен к указанному удаленному IP-адресу и порту (т. Е. Уже есть идентичная пара сокетов), вы получите эту ошибку (значение = 99 в Linux).
4 страницы ссылаются на EADDRNOTAVAIL
:
- связать (2)
- подключить (2)
- setsockopt (2)
- пакет (7)
Продолжайте, попробуйте и с другими значениями ошибок, это не так уж плохо.
1 Вы используете Firefox, верно? : -)