从套接字获取地址族。 Linux的

我想为Linux Socket API编写一个C ++包装器。 在socket()中请求地址族(AF)。 我不想再要求connect()签名中的AF,因为它已经在socket的构造函数中给出了。 那么如何从现有的套接字获取AF?

该死的。 搜索了大约半个小时。 现在发布这个问题后,我发现不知道答案。

getsockopt([…])与选项SO_DOMAIN(请参阅套接字选项 )

POSIX标准getsockname将有助于:

int getsockname(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len); 

它将填充给定的struct sockaddr(成功时):

 struct sockaddr { unsigned short sa_family; // <- that's what you looking for char sa_data[14]; }