bind()需要一定长度的sockaddr结构.
现在,对于unix套接字,使用 sockaddr_un
现在,对于unix套接字,使用 sockaddr_un
当你填写sun_path成员时,计算长度的正确方法是什么?我见过多种方法:
socklen_t len = sizeof(sockaddr_un); socklen_t len = offsetof(sockaddr_un,sun_path) + strlen(addr.sun_path); socklen_t len = offsetof(sockaddr_un,sun_path) + strlen(addr.sun_path) + 1; socklen_t len = sizeof(sockaddr.sun_family ) + strlen(addr.sun_path);
sizeof(struct sockaddr_un)很好.
看一下manix unix(7).字段sun_path是一个字符数组,它是结构的一部分.