【发布时间】:2011-01-19 10:25:14
【问题描述】:
bind() 需要你给它的 sockaddr 结构的长度。 现在,对于 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(sockaddr_un) 可以吗?或者正确的方法是什么?
【问题讨论】: