C 语言中带有 getaddrinfo() 的 Unix 套接字

est*_*ban 3 c sockets getaddrinfo

有谁知道是否可以在 C (AF_UNIX) 中将 getaddrinfo 与 unix 套接字一起使用。我尝试了一些方法,但无法使其发挥作用。这基本上就是我正在尝试的:

struct addrinfo hints, *res;

memset(&hints, 0, sizeof(hints));
hints.ai_family   = AF_UNIX;
hints.ai_socktype = SOCK_STREAM;
if(getaddrinfo("What should I put here?", "What should I put here?", &hints, &res) != 0){
    //do sth about
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何填充节点和服务字段,以防可以将其与 unix 套接字一起使用。
提前致谢。

caf*_*caf 5

某些实现getaddrinfo()支持AF_UNIX套接字地址,但出于安全考虑,它们不再这样做。

无论如何,您实际上并不需要一个函数来“查找”AF_UNIX地址 - 如果您知道套接字路径,那么您可以直接将其复制到sockaddr_un足够大小的地址中。地址没有解析步骤AF_UNIX- 套接字名称就是套接字地址。