Является ли объединение структур данных sockunion только для FreeBSD или также для Linux?

Является ли структура данных union sockunion только для FreeBSD или она также действительна для Linux? Если это только для FreeBSD, то что эквивалентно в Linux? Спасибо!


person Pheonix7    schedule 21.01.2016    source источник


Ответы (1)


Во FreeBSD он также не представлен в /usr/include, хотя и существует во внутреннем исходном коде libc.

Некоторое другое программное обеспечение, такое как Zebra, также поставляет его.

Как вы наткнулись на это?

person marcolz    schedule 21.01.2016
comment
некоторые разработали приложение для FreeBSD, и мне нужно, чтобы оно работало на Linux. Спасибо! - person Pheonix7; 21.01.2016
comment
@Pheonix7: А объединение sockunion не определено в исходном коде приложения? - person marcolz; 21.01.2016
comment
да, это определяется как: union sockunion { struct sockaddr sa; структура sockaddr_in грех; структура sockaddr_in6 sin6; структура sockaddr_storage сс; }; Могу ли я использовать это, поскольку это iin linux? - person Pheonix7; 21.01.2016
comment
Я проверил запуск этого приложения в своей системе Linux, и кажется, что sockunion работает. Во время отладки я вижу правильные значения адреса. Как это возможно? Означает ли это, что я могу оставить его, и он будет работать. Учтите, что позади много кода, и если бы мне пришлось его изменить, я бы знал, с чего начать. ценить это - person Pheonix7; 21.01.2016
comment
@ Pheonix7: Да, если объединение определено в вашем исходном коде, вы сможете использовать его как есть. Это возможно, потому что все структуры, из которых он состоит, существуют как в Linux, так и во FreeBSD. - person marcolz; 21.01.2016