调用bind()时AF_UNIX套接字的正确长度

前端之家收集整理的这篇文章主要介绍了调用bind()时AF_UNIX套接字的正确长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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) – 或者正确的方法是什么?

sizeof(struct sockaddr_un)很好.

看一下manix unix(7).字段sun_path是一个字符数组,它是结构的一部分.

猜你在找的Bash相关文章