table of contents
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ă:
- ENOBUFS
- 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 Linux (nepublicate) |