Типовою умовою в 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()виклик не вдасться, як ми бачимо в цьому випадку.