在Linux下编译程序,accept( ; ; ;) 函数的第三个参数提示“从类型‘int*’到类型‘socklen_t*’的转换无效”,于是乎,我发现还有个 socklen_t 类型。
解决办法:
将保存 struct sockaddr_un 结构的长度的变量类型,由 int 类型改为 socklen_t 类型。
将 int 类型改为 socklen_t 类型之后,编译含有 accept( ; ; ;) 的代码,顺利通过编译。
话说,看到这么一个宏,也可以计算 struct sockaddr_un 结构的长度。
int size = offsetof(struct sockaddr_un, sun_path) + strlen(un.sun_path);
我在想,这样计算得到的 size 是不是就不需要 改 int 类型为 socklen_t 类型 了呢? (2012-06-11)
引文地址: http://blog.csdn.net/blueliuyun/article/details/7638532
如何在Linux下搜索 socklen_t 类型所在的文件呢?
--> cd /usr/include
--> grep -r socklen_t * | grep typedef
得到的结果截图如下: