Một quy ước điển hình trong UNIX là các chương trình (thường) đọc cấu hình khởi động của chúng từ các tệp được xác định trước khác nhau. Đây chỉ là một truyền thống, không phải bất cứ điều gì được xác định bởi POSIX hoặc bất kỳ tiêu chuẩn nào khác. Một chương trình UNIX điển hình, ví dụ như foobarsẽ đọc, theo thứ tự ưu tiên sau:
~/.foobarrc ## User specific configuration parameters
/etc/foobarrc ## Global parameters, depending on taste
## `/etc/foobar/*(.conf)' might be chosen too
Có thể có một dự phòng /usr/share/nhưng điều đó không phổ biến lắm.
Vì vậy, curlở đây theo quy ước và đọc cấu hình ban đầu của nó ~/.curlrc. Và bằng cách thực hiện echo ipv4 >>~/.curlrc, bạn đã nối chuỗi ipv4vào tệp ~/.curlrc.
Chuỗi ipv4có ý nghĩa đặc biệt curl- curlsẽ sử dụng IPv4 cho độ phân giải máy chủ sau đó. Điều này tương tự với việc sử dụng -4/ ipv4như curllà đối số từ dòng lệnh, nhưng tiết kiệm để ~/.curlrcbiến điều này thành vĩnh viễn.
Như bạn đã thiết lập ipv4ở đó và bây giờ mọi thứ đều phù hợp với bạn, có lẽ bạn đã cấu hình IPv6 và curltrước đây đã sử dụng IPv6 cho độ phân giải máy chủ (thành công), do đó không có dự phòng cho IPv4. Kết nối đến trang không thành công vì không phải tất cả các trang đều có máy chủ web được cấu hình để nghe trên địa chỉ IPv6, vì vậy socket()cuộc gọi sẽ thất bại như chúng ta có thể thấy trong trường hợp này.