встроенный метод программирования Linux - настройка сети - PullRequest
2 голосов
/ 29 июня 2011

Я мог бы что-то упустить в общей концепции, потому что я искал и не нашел ответа на этот вопрос ... Я пишу приложение с графическим интерфейсом на встроенном Linux, языке Си.Я хотел бы разрешить пользователю изменять настройки сети:

  • Режим клиента DHCP - в файловой системе у меня есть busybox с приложением uDHCPc.
  • Если DHCP отключен, настройтеIP, подсеть, шлюз.

Я уже обнаружил, что IP, подсеть и шлюз можно изменить с помощью ioctl на сокете.Единственный способ активировать uDHCPc из моего приложения - вызвать функцию: system (...) для команды execute shell, и это неудобно, как запуск сценария оболочки, который запускает ifconfig для получения / установки IP-адреса.

Каков правильный / распространенный способ запуска «действия сценария» (включение / отключение DHCP; настройка системы чтения / записи) из моего приложения C во встроенном linux?

Спасибо.

1 Ответ

0 голосов
/ 29 июня 2011

DHCP - это протокол, который работает по сети. Это реализовано в программах пользовательского пространства, таких как uDHCPc. Нет реализации ядра и нет способа использовать ioctls для этого. функция system () будет работать, но она также порождает промежуточную оболочку. Если вам нужна более высокая эффективность, вы можете просто использовать fork () и exec () для вызова uDHCPc в качестве подпроцесса

...