.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2012 YOSHIFUJI Hideaki .\" and Copyright (c) 2012 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH if_nameindex 3 "15 декабря 2022 г." "Linux man\-pages 6.03" .SH ИМЯ if_nameindex, if_freenameindex \- получает имена сетевых интерфейсов и индексы .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBstruct if_nameindex *if_nameindex(\fP\fIvoid\fP\fB);\fP \fBvoid if_freenameindex(struct if_nameindex *\fP\fIptr\fP\fB);\fP .fi .SH ОПИСАНИЕ Функция \fBif_nameindex\fP() возвращает массив структур \fIif_nameindex\fP, каждая из которых содержит информацию об одном из сетевых интерфейсов системы. Структура \fIif_nameindex\fP содержит по крайней мере следующие данные: .PP .in +4n .EX unsigned int if_index; /* индекс интерфейса (1, 2, …) */ char *if_name; /* имя с Null в конце («eth0», и т. д.) */ .EE .in .PP В поле \fIif_index\fP содержится индекс интерфейса. Значение поля \fIif_name\fP указывает на имя интерфейса (завершается null). Конец массива определяется по записи \fIif_index\fP с нулевым значением и по записи \fIif_name\fP со значением NULL. .PP Память под структуру данных, возвращаемая \fBif_nameindex\fP(), выделяется динамически и должна освобождаться с помощью \fBif_freenameindex\fP(), когда больше не нужна. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, \fBif_nameindex\fP() returns pointer to the array; on error, NULL is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ Функция \fBif_nameindex\fP() может завершиться с ошибкой и изменить \fIerrno\fP если: .TP \fBENOBUFS\fP Недостаточно ресурсов. .PP Также функция \fBif_nameindex\fP() может завершиться с ошибками, перечисленными в \fBsocket\fP(2), \fBbind\fP(2), \fBioctl\fP(2), \fBgetsockname\fP(2), \fBrecvmsg\fP(2), \fBsendto\fP(2) или \fBmalloc\fP(3). .SH ВЕРСИИ Впервые функция \fBif_nameindex\fP() появилась в glibc 2.1, но до glibc 2.3.4, реализация поддерживала только интерфейсы с адресами IPv4. Поддержка интерфейсов без адресов IPv4 доступна только в ядрах, поддерживающих netlink. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .ad l .nh .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ \fBif_nameindex\fP(), \fBif_freenameindex\fP() T} Безвредность в нитях MT\-Safe .TE .hy .ad .sp 1 .SH СТАНДАРТЫ POSIX.1\-2001, POSIX.1\-2008, RFC\ 3493. .PP Эта функция впервые появилась в BSDi. .SH ПРИМЕРЫ В программе, показанной далее, демонстрируется использование функции, описанной на этой странице. Пример вывода этой программы может быть следующим: .PP .in +4n .EX $ \fB./a.out\fP\fI 1: lo 2: wlan0 3: em1\fP .EE .in .SS "Исходный код программы" .\" SRC BEGIN (if_nameindex.c) .EX #include #include #include #include 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\en", i\->if_index, i\->if_name); if_freenameindex(if_ni); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "СМ. ТАКЖЕ" \fBgetsockopt\fP(2), \fBsetsockopt\fP(2), \fBgetifaddrs\fP(3), \fBif_indextoname\fP(3), \fBif_nametoindex\fP(3), \fBifconfig\fP(8) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitriy S. Seregin , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .