Una convención típica en UNIX es que los programas (generalmente) leen su configuración de inicio desde varios archivos predefinidos. Esto es simplemente una tradición, no algo definido por POSIX o cualquier otro estándar. Un programa típico de UNIX, por ejemplo foobar
, leería, en el siguiente orden de precedencia:
~/.foobarrc ## User specific configuration parameters
/etc/foobarrc ## Global parameters, depending on taste
## `/etc/foobar/*(.conf)' might be chosen too
Puede haber un retroceso, /usr/share/
pero eso no es muy común.
Entonces, curl
aquí siguiendo la convención y leyendo su configuración inicial desde ~/.curlrc
. Y al hacerlo echo ipv4 >>~/.curlrc
, ha agregado la cadena ipv4
al archivo ~/.curlrc
.
La cadena ipv4
tiene un significado especial para curl
: curl
utilizará IPv4 para la resolución del host. Esto es análogo al uso del argumento -4
/ ipv4
as curl
desde la línea de comandos, pero guardarlo ~/.curlrc
hace que sea permanente.
Como ha configurado ipv4
allí y ahora todo funciona para usted, presumiblemente tiene IPv6 configurado y curl
anteriormente estaba usando IPv6 para una resolución de host (exitosa), por lo que no hay respaldo para IPv4. La conexión al sitio estaba fallando porque no todos los sitios tienen sus servidores web configurados para escuchar en direcciones IPv6, por lo que la socket()
llamada fallará como podemos ver en este caso.