.\" -*- 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 июня 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ if_nameindex, if_freenameindex \- получает имена сетевых интерфейсов и индексы .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \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 содержит по крайней мере следующие данные: .P .in +4n .EX unsigned int if_index; /* индекс интерфейса (1, 2, …) */ char *if_name; /* имя с Null в конце («eth0», и т. д.) */ .EE .in .P В поле \fIif_index\fP содержится индекс интерфейса. Значение поля \fIif_name\fP указывает на имя интерфейса (завершается null). Конец массива определяется по записи \fIif_index\fP с нулевым значением и по записи \fIif_name\fP со значением NULL. .P Память под структуру данных, возвращаемая \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 Недостаточно ресурсов. .P Также функция \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 АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBif_nameindex\fP(), \fBif_freenameindex\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ POSIX.1\-2008, RFC\ 3493. .SH ИСТОРИЯ glibc 2.1. POSIX.1\-2001. BSDi. .P Before glibc 2.3.4, the implementation supported only interfaces with IPv4 addresses. Support of interfaces that don't have IPv4 addresses is available only on kernels that support netlink. .SH ПРИМЕРЫ В программе, показанной далее, демонстрируется использование функции, описанной на этой странице. Пример вывода этой программы может быть следующим: .P .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\[rs]n", 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 , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .