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 に答える