Как получить данные /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 и их влияния на возврат данных?