IF_NAMETOINDEX(3) System Programmer's Manual IF_NAMETOINDEX(3)
NAME
if_nametoindex, if_indextoname, if_nameindex, if_freenameindex - convert
interface index to name, and vice versa
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
These functions map interface indexes to interface names (such as
``lo0''), and vice versa.
The if_nametoindex() function converts an interface name specified by the
ifname argument to an interface index (positive integer value). If the
specified interface does not exist, 0 will be returned.
if_indextoname() converts an interface index specified by the ifindex ar-
gument to an interface name. The ifname argument must point to a buffer
of at least IF_NAMESIZE bytes into which the interface name corresponding
to the specified index is returned. (IF_NAMESIZE is also defined in
<net/if.h> and its value includes a terminating null byte at the end of
the interface name.) This pointer is also the return value of the func-
tion. If there is no interface corresponding to the specified index,
NULL is returned.
if_nameindex() returns an array of if_nameindex structures.
if_nametoindex is also defined in <net/if.h>, and is as follows:
struct if_nameindex {
unsigned int if_index; /* 1, 2, ... */
char *if_name; /* null terminated name: "le0", ... */
};
The end of the array of structures is indicated by a structure with an
if_index of 0 and an if_name of NULL. The function returns a null pointer
on error. The memory used for this array of structures along with the
interface names pointed to by the if_name members is obtained dynamical-
ly. This memory is freed by the if_freenameindex() function.
if_freenameindex() takes a pointer that was returned by if_nameindex() as
argument (ptr), and it reclaims the region allocated.
DIAGNOSTICS
if_nametoindex() returns 0 on error, positive integer on success.
if_indextoname() and if_nameindex() return NULL on errors.
SEE ALSO
R. Gilligan, S. Thomson, J. Bound, and W. Stevens, ``Basic Socket Inter-
face Extensions for IPv6,'' RFC2553, March 1999.
STANDARDS
These functions are defined in ``Basic Socket Interface Extensions for
IPv6'' (RFC2533).
BSD Experimental May 21, 1998 2
|