GETIFMADDRS(3)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

πŸ’– NAME πŸ’–

getifmaddrs β€” get multicast group memberships ✨

Okay bestie, this is the getifmaddrs(3) page from the Library Functions Manual (yes, the manual name is folded in right here at the top 🫢).

🌸 SYNOPSIS 🌸

#include <ifaddrs.h>

int
getifmaddrs(struct ifmaddrs **ifmap);

void
freeifmaddrs(struct ifmaddrs *ifmp);

πŸ’… DESCRIPTION πŸ’…

The getifmaddrs() function stores a reference to a linked list of the multicast memberships on the local machine in the memory referenced by ifmap. The list consists of ifmaddrs structures, as defined in the include file <ifaddrs.h>. The 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 */
  • ifma_next β€” contains a pointer to the next structure on the list. This field is NULL in last structure on the list. πŸ’€
  • ifma_name β€” references an AF_LINK address structure, containing the name of the interface where the membership exists. πŸŽ€
  • ifma_addr β€” references the address that this membership is for. πŸ“¬
  • ifma_lladdr β€” 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. Cleanup slay ✨.

πŸ”₯ RETURN VALUES πŸ”₯

The getifmaddrs() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error. That's the whole vibe check 😭.

πŸ’€ ERRORS πŸ’€

The getifmaddrs() may fail and set errno for any of the errors specified for the library routines malloc(3) or sysctl(3). Not me pointing you straight at those man pages, but yes 🫢.

🌈 SEE ALSO 🌈

πŸ‘‘ HISTORY πŸ‘‘

The getifmaddrs() function first appeared in FreeBSD 5.2. iconic behavior πŸ’….

πŸ› BUGS πŸ›

If both <net/if.h> and <ifaddrs.h> are being included, <net/if.h> must be included before <ifaddrs.h>. No cap, order matters bestie πŸ™ˆ.

xoxo, from Debian, dated May 21, 2013, signed GETIFMADDRS(3), in the Library Functions Manual πŸ’–πŸ«Άβœ¨

πŸ“¦ where this page comes from