Ошибка компилятора при вызове connect (2) с помощью sockaddr_un

Я делаю простой вызов 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или как я это кастую?

1

Решение

Макрос SUN_LEN ожидает, что переданная структура будет указателем, поэтому вы должны использовать SUN_LEN(&name),

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]