Как получить данные /proc/net/dev с помощью вызова функции sysctl?

В моем приложении мне нужна статистика использования сети (полученные байты и пакеты) для каждого интерфейса в системе.

Я нашел, как это сделать во FreeBSD:

static int name[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_SYSTEM, IFMIB_IFCOUNT };

sysctl(name, 5, &data, &len, NULL, 0)

Но это не работает в Linux (в моем ядре Linux 4.14 нет флага PF_LINK и if_mib.h). И я думаю, что разбор /proc/net/dev не совсем идиоматический способ.

Где я могу найти полное описание иерархии всех флагов (или только флагов NET) для sysctl и их влияния на возврат данных?

0 ответов

Другие вопросы по тегам