if_nameindex(3) Library Functions Manual if_nameindex(3) NOM if_nameindex, if_freenameindex - Obtenir le nom et l'indice des interfaces reseau BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include struct if_nameindex *if_nameindex(void); void if_freenameindex(struct if_nameindex *ptr); DESCRIPTION La fonction if_nameindex() renvoie un tableau de structures if_nameindex, contenant chacune des informations au sujet d'une des interfaces reseau du systeme local. La structure if_nameindex contient au moins les champs suivants : unsigned int if_index; /* Indice de l'interface (1, 2, etc.) */ char *if_name; /* nom se terminant par un caractere nul ("eth0", etc.) */ Le champ if_index contient l'indice de l'interface. Le champ ifa_name pointe vers le nom de l'interface qui se termine par un caractere nul. La fin du tableau est indiquee par une entree dont les champs if_index et ifa_name valent respectivement 0 et le pointeur NULL. La donnee renvoyee par if_nameindex() est dynamiquement allouee et devrait etre liberee avec if_freenameindex() lorsqu'elle n'est plus utilisee. VALEUR RENVOYEE En cas de reussite, if_nameindex() renvoie un pointeur vers le tableau. En cas d'erreur, elle renvoie un pointeur NULL et errno est positionne pour indiquer l'erreur. ERREURS if_nameindex() peut echouer et remplir errno si : ENOBUFS les ressources disponibles sont insuffisantes. getifaddrs() peut aussi echouer pour les erreurs precisees pour socket(2), bind(2), getsockname(2), recvmsg(2), sendto(2) ou malloc(3). ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |if_nameindex(), | Securite des threads | MT-Safe | |if_freenameindex() | | | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008, RFC 3493. HISTORIQUE glibc 2.1. POSIX.1-2001. BSDi. Les versions anterieures a la glibc 2.3.4 ne geraient que les interfaces avec des adresses IPv4. La gestion des interfaces qui n'ont pas d'adresse IPv4 n'est disponible que si le noyau gere netlink. EXEMPLES Le programme ci-dessous montre l'utilisation des fonctions decrites dans cette page. Voici un exemple de sortie que ce programme peut produire : $ ./a.out 1: lo 2: wlan0 3: em1 Source du programme #include #include #include #include int main(void) { struct if_nameindex *if_ni, *i; if_ni = if_nameindex(); if (if_ni == NULL) { perror( exit(EXIT_FAILURE); } for (i = if_ni; !(i->if_index == 0 && i->if_name == NULL); i++) printf("%u : %s\n", i->if_index, i->if_name); if_freenameindex(if_ni); exit(EXIT_SUCCESS); } VOIR AUSSI getsockopt(2), setsockopt(2), getifaddrs(3), if_indextoname(3), if_nametoindex(3), ifconfig(8) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 if_nameindex(3)