我正在 C++ 程序中对 connect(2) 进行简单调用。代码是:
connect(socket_fd, (struct sockaddr *)&name, SUN_LEN(name));
(这里,name
是一个struct sockaddr_un
)。
当我尝试编译它时,我从 g++ 得到以下错误:
error: base operand of '->' has non-pointer type 'sockaddr_un'
我对此感到非常困惑,因为我没有在程序的任何地方使用 -> 运算符!我获取 name
地址的方式或转换它的方式有问题吗?
最佳答案
宏 SUN_LEN
期望传递的结构是一个指针,因此您应该使用 SUN_LEN(&name)
。
关于c++ - 使用 sockaddr_un 调用 connect(2) 时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468159/