iOS Reference Library Apple Developer
Search

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



IF_NAMETOINDEX(3)        BSD Library Functions Manual        IF_NAMETOINDEX(3)

NAME
     if_freenameindex, if_indextoname, if_nameindex, if_nametoindex -- convert
     interface index to name, and vice versa

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <net/if.h>

     void
     if_freenameindex(struct if_nameindex *ptr);

     char *
     if_indextoname(unsigned ifindex, char *ifname);

     struct if_nameindex *
     if_nameindex(void);

     unsigned int
     if_nametoindex(const char *ifname);

DESCRIPTION
     The functions map interface index to readable interface name (such as
     ``lo0''), and vice versa.

     if_nametoindex() converts readable interface name to interface index

     If the specified interface does not exist, 0 will be returned.

     if_indextoname() converts interface index to readable 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 function.  If there is no inter-face interface
     face 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 upon an error.  The memory used for this array of structures
     along with the interface names pointed to by the if_name members is
     obtained dynamically.  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 Interface
     face Extensions for IPv6,'' RFC2553, March 1999.

HISTORY
     The implementation first appeared in WIDE Hydrangea IPv6 protocol stack
     kit.

STANDARDS
     These functions are defined in ``Basic Socket Interface Extensions for
     IPv6'' (RFC2533).

BSD                              May 21, 1998                              BSD
Did this document help you? Yes It's good, but... Not helpful...