Scroll to navigation

if_nameindex(3) Library Functions Manual if_nameindex(3)

NUME

if_nameindex, if_freenameindex - obțin numele și indicii interfețelor de rețea

BIBLIOTECA

Biblioteca C standard (libc, -lc)

SINOPSIS

#include <net/if.h>
struct if_nameindex *if_nameindex(void);
void if_freenameindex(struct if_nameindex *ptr);

DESCRIERE

Funcția if_nameindex() returnează o matrice de structuri if_nameindex, fiecare conținând informații despre una dintre interfețele de rețea de pe sistemul local. Structura if_nameindex conține cel puțin următoarele intrări:


unsigned int if_index; /* Indicele interfeței (1, 2, ...) */
char        *if_name;  /* Nume cu terminație nulă („eth0”, etc.) */

Câmpul if_index conține indexul interfeței. Câmpul if_name indică numele interfeței cu terminație nulă. Sfârșitul matricei este indicat de intrarea cu if_index fixat la zero și if_name fixat la NULL.

Structura de date returnată de if_nameindex() este alocată dinamic și trebuie eliberată folosind if_freenameindex() atunci când nu mai este necesară.

VALOAREA RETURNATĂ

În caz de succes, if_nameindex() returnează indicatorul la matrice; în caz de eroare, se returnează NULL, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

if_nameindex() poate eșua și configura errno dacă:

Resurse disponibile insuficiente.

if_nameindex() poate eșua, de asemenea, pentru oricare dintre erorile specificate pentru socket(2), bind(2), ioctl(2), getsockname(2), recvmsg(2), sendto(2), sau malloc(3).

ATRIBUTE

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
if_nameindex(), if_freenameindex() Siguranța firelor MT-Safe

STANDARDE

POSIX.1-2008, RFC 3493.

ISTORIC

glibc 2.1. POSIX.1-2001. BSDi.

Înainte de glibc 2.3.4, implementarea suporta doar interfețe cu adrese IPv4. Suportul interfețelor care nu au adrese IPv4 este disponibil numai pe nucleele care suportă netlink.

EXEMPLE

Programul de mai jos demonstrează utilizarea funcțiilor descrise pe această pagină. Un exemplu de rezultat pe care acest program îl poate produce este următorul:


$ ./a.out 1: lo 2: wlan0 3: em1

Sursa programului

#include <net/if.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main(void)
{

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); }

CONSULTAȚI ȘI

getsockopt(2), setsockopt(2), getifaddrs(3), if_indextoname(3), if_nametoindex(3), ifconfig(8)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

2 mai 2024 Pagini de manual de Linux 6.8