1

我在 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方式或投射地址的方式有问题吗?

4

1 回答 1

3

SUN_LEN期望传递的结构是一个指针,所以你应该使用SUN_LEN(&name).

于 2013-05-09T18:07:42.463 回答