if_nametoindex(3)
NAME
- if_nametoindex, if_indextoname, if_nameindex,
- if_freenameindex - provide
mappings between interface names and indexes
SYNOPSIS
#include <net/if.h> unsigned int if_nametoindex(const char *ifname); char * if_indextoname(unsigned int ifindex, char *ifname); struct if_nameindex * if_nameindex(void); void if_freenameindex(struct if_nameindex *ptr);
DESCRIPTION
- The if_nametoindex() function maps the interface name speci
- fied in ifname
to its corresponding index. If the specified interface does - not exist,
it returns 0. - The if_indextoname() function maps the interface index spec
- ified in
ifindex to it corresponding name, which is copied into the - buffer pointed
to by ifname, which must be of at least IFNAMSIZ bytes. - This pointer is
also the return value of the function. If there is no in - terface corresponding to the specified index, NULL is returned.
- The if_nameindex() function returns an array of if_nameindex
- structures,
one structure per interface, as defined in the include file - The
if_nameindex structure contains at least the following en - tries:
unsigned int if_index; /* 1, 2, ... */
char *if_name; /* null terminated name:- "le0", ... */
- The end of the array of structures is indicated by a struc
- ture with an
if_index of 0 and an if_name of NULL. A NULL pointer is re - turned upon an
error. - The if_freenameindex() function frees the dynamic memory
- that was allocated by if_nameindex().
RETURN VALUES
- Upon successful completion, if_nametoindex() returns the in
- dex number of
the interface. If the interface is not found, a value of 0 - is returned
and errno is set to ENXIO. A value of 0 is also returned if - an error
occurs while retrieving the list of interfaces via getifad - drs(3).
- Upon successful completion, if_indextoname() returns ifname.
- If the
interface is not found, a NULL pointer is returned and errno - is set to
ENXIO. A NULL pointer is also returned if an error occurs - while retrieving the list of interfaces via getifaddrs(3).
- The if_nameindex() returns a NULL pointer if an error occurs
- while
retrieving the list of interfaces via getifaddrs(3), or if - sufficient
memory cannot be allocated.
SEE ALSO
STANDARDS
The if_nametoindex(), if_indextoname(), if_nameindex(), and if_freenameindex() functions conform to RFC 2553.
HISTORY
- The implementation first appeared in BSDi BSD/OS.
- BSD July 15, 2002