Типовою умовою в UNIX є те, що програми (зазвичай) зчитують конфігурацію запуску з різних заздалегідь заданих файлів. Це просто традиція, не що-небудь визначене POSIX або будь-яким іншим стандартом. Типова програма UNIX, наприклад foobar
, читатиметься у наступному порядку пріоритетності:
~/.foobarrc ## User specific configuration parameters
/etc/foobarrc ## Global parameters, depending on taste
## `/etc/foobar/*(.conf)' might be chosen too
Можливо, є резерв, /usr/share/
але це не дуже часто.
Отже, curl
тут дотримуючись конвенції та читаючи її початкову конфігурацію з ~/.curlrc
. І тим самим echo ipv4 >>~/.curlrc
ви додали рядок ipv4
до файлу ~/.curlrc
.
Рядок ipv4
має особливе значення curl
- curl
використовуватиме IPv4 для вирішення хосту тоді. Це аналогічно використанню аргументу -4
/ ipv4
як curl
в командному рядку, але збереження ~/.curlrc
робить це постійним.
Як ви ipv4
там curl
увійшли, і тепер все працює для вас, імовірно, у вас налаштований IPv6, і раніше ви використовували IPv6 для (успішного) дозволу хоста, так що жодного резервного IPv4. Підключення до сайту не вдалося, оскільки не на всіх сайтах налаштовані веб-сервери для прослуховування на IPv6-адресах, тому socket()
виклик не вдасться, як ми бачимо в цьому випадку.