The
getifmaddrs ();
function stores a reference to a linked list of the multicast memberships
on the local machine in the memory referenced by
Fa ifmap .
The list consists of
Vt ifmaddrs
structures, as defined in the include file
In ifaddrs.h .
The
Vt ifmaddrs
structure contains at least the following entries:
struct ifmaddrs *ifma_next; /* Pointer to next struct */
struct sockaddr *ifma_name; /* Interface name (AF_LINK) */
struct sockaddr *ifma_addr; /* Multicast address */
struct sockaddr *ifma_lladdr; /* Link-layer translation, if any */
The
ifma_next
field contains a pointer to the next structure on the list.
This field is
NULL
in last structure on the list.
The
ifma_name
field references an
AF_LINK
address structure, containing the name of the
interface where the membership exists.
The
ifma_addr
references the address that this membership is for.
The
ifma_lladdr
field references a link-layer translation for the protocol-level address in
ifma_addr
if one is set, otherwise it is
NULL
The data returned by
getifmaddrs ();
is dynamically allocated and should be freed using
freeifmaddrs ();
when no longer needed.
RETURN VALUES
Rv -std getifmaddrs
ERRORS
The
getifmaddrs ();
may fail and set
errno
for any of the errors specified for the library routines
malloc(3)
or
sysctl(3).