新しいソケットを設定した後にIP_MULTICAST_IFオプションにどのようなデフォルト値が使用されているかを調べようとしています。残念ながら私のコードsegfaultsと私は実際になぜか分からないのですか?私は何か間違っているか、IP_MULTICAST_IFオプションのデフォルト値を取得する方法はありますか?IP_MULTICAST_IFのデフォルト値
int sock;
struct in_addr interface_addr;
int addr_size;
if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
perror("socket() failed");
}
addr_size = sizeof(interface_addr);
if ((getsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, &interface_addr, &addr_size)) < 0) {
perror("getsockopt() failed");
}
printf("The default interface is %s\n", inet_ntoa(interface_addr));
何らかの理由で、セグメンテーションフォルトがinet_ntoa(..)から発生しているようです。構造体をip_mreq構造体に修正しても、同じセグメント化エラーが発生します。 – Bjoern