NOM¶
if_nameindex, if_freenameindex - Obtenir le nom et l'indice des interfaces
réseau
SYNOPSIS¶
#include <net/if.h>
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 réseau du système 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 terminé par un caractère nul ("eth0", etc.) */
Le champ
if_index contient l'indice de l'interface. Le champ
ifa_name pointe vers le nom de l'interface, donné par une
chaîne terminée par un caractère nul. La fin du tableau
est indiquée par une entrée dont les champs
if_index et
ifa_name valent respectivement 0 et le pointeur NULL.
La donnée renvoyée par
if_nameindex() est dynamiquement
allouée et devrait être libérée avec
if_freenameindex() lorsqu'elle n'est plus utilisée.
VALEUR RENVOYÉE¶
En cas de réussite,
if_nameindex() renvoie un pointeur vers le
tableau. En cas d'erreur, elle renvoie un pointeur NULL et
errno est
rempli avec le code d'erreur.
ERREURS¶
if_nameindex() peut échouer et remplir
errno si :
- ENOBUFS
- les ressources disponibles sont insuffisantes.
getifaddrs() peut aussi échouer pour les erreurs
précisées pour
socket(2),
bind(2),
getsockname(2),
recvmsg(2),
sendto(2) ou
malloc(3).
VERSIONS¶
getifaddrs() est apparue dans la glibc 2.1. Les versions
antérieures à la glibc 2.3.4 ne géraient 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 gère netlink.
RFC 3493, POSIX.1-2001.
Cette fonction est d'abord apparue dans BSDi.
EXEMPLE¶
Le programme ci-dessous montre l'utilisation des fonctions décrites 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 <net/if.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main(int argc, char *argv[])
{
struct if_nameindex *if_ni, *i;
if_ni = if_nameindex();
if (if_ni == NULL) {
perror("if_nameindex");
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)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».