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, curlaquí siguiendo la convención y leyendo su configuración inicial desde ~/.curlrc. Y al hacerlo echo ipv4 >>~/.curlrc, ha agregado la cadena ipv4al archivo ~/.curlrc.
La cadena ipv4tiene un significado especial para curl: curlutilizará IPv4 para la resolución del host. Esto es análogo al uso del argumento -4/ ipv4as curldesde la línea de comandos, pero guardarlo ~/.curlrchace que sea permanente.
Como ha configurado ipv4allí y ahora todo funciona para usted, presumiblemente tiene IPv6 configurado y curlanteriormente 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.