Вы можете определить переменную оболочки feat=feature/blabla
, а затем использовать git checkout $feat-7
. Например, в некоторых оболочках (zsh, но не в bash ), вы можете нажать вкладку после $feat
, чтобы развернуть ее непосредственно до feature/blabla
.
Обратной стороной является добавленный знак доллара, но положительной стороной является то, что он работает почти во всех оболочках, просто добавляя это определение переменной.
Как указывалось ранее, вы можете просмотреть исходный код iproute2, в котором используется libnetlink. Однако согласно документации libnetlink предназначен для внутреннего использования, используйте libmnl для новых программ .
API-интерфейс Libmnl немного отличается, так что это не просто -замена, но он выполняет свою работу и работает точно так же. В основном вам нужно настроить сообщение netlink, а затем начать добавлять вложенные атрибуты. Как только ваше сообщение будет создано, отправьте его по сети, используя API-интерфейсы сокетов libmnl, и все готово.
Пример кода для установки соединения вверх/вниз :https://github.com/pevik/libmnl/blob/60e34d339522bbad3142fa1609e4506edd33c969/examples/rtnl/rtnl-link-set.c
Обратите внимание, что для установки скорости передачи вам не нужно устанавливать ifi_flags
. Вместо этого после добавления атрибута, содержащего имя устройства can (с помощью mnl_attr_put_str
), вам необходимо добавить вложенный объект linkinfo с помощью mnl_attr_nest_start
, mnl_attr_put_str
. Затем, используя те же самые функции, вам также нужно добавить объект битовой синхронизации can(struct can_bittiming
). См. iplink _can.c для примера того, какие данные должны быть установлены в этой структуре. Вы завершаете построение полезной нагрузки, вызывая mnl_attr_nest_end
для обоих вложенных объектов.