Я делаю простой вызов connect (2) в программе на C ++. Код является:
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)
,
Других решений пока нет …