Вы можете использовать Netlink
. Из вики ,
Netlink был разработан и используется для передачи различной сетевой информации между пространством ядра Linux и процессами пространства пользователя. Сетевые утилиты, такие как iproute2, используют Netlink для связи с ядром Linux из пользовательского пространства. Netlink состоит из стандартного интерфейса на основе сокетов для процессов пользовательского пространства и внутреннего API ядра для модулей ядра. Он разработан как более преемник ioctl. Первоначально Netlink использовал семейство сокетов AF_NETLINK .
Лично я предпочитаю использовать сценарии bash для таких задач, поскольку я могу указать правила / маршрутизацию iptables
в самом сценарии. Если вы используете такой язык программирования, как C, вы, вероятно, можете вызвать систему
, а затем использовать возвращаемое значение в вашей программе, чтобы что-то сделать.
Существует один API с именем haxwithaxe , доступный по адресу здесь
Я пробовал использовать приведенную ниже команду sed, и она работала нормально
Command: sed '/Version/{n;s/~/=/g}' filename
и
n_linux_example ~]# sed '/Version/{n;s/~/=/g}' filename
Version 0.5.1
=============
Released: 2019-01-03
* This is a test with a ~ tilde ~~~~
* Second line
[root@praveen_linux_example ~]#
Вы можете сопоставить шаблон для строк, содержащих только символы тильды, а затем выполнить замену символа -с помощью -замены символа
sed '/^~*$/s/~/=/g'