2011-06-28 62 views
2

因爲我搜索我可能錯過了一些在一般概念,並沒有找到該答案... 我在嵌入式Linux,C語言編寫GUI應用程序。我想允許用戶更改網絡設置:Linux的嵌入式編程方法 - 網絡設置

  • DHCP客戶端模式 - 我在文件系統上有uDHCPc應用程序的busybox。
  • 如果禁用DHCP,然後配置IP,子網掩碼,默認網關。

我已經發現IP,子網和網關可以在套接字上使用ioctl進行更改。 我發現從我的應用程序激活使用udhcpc的唯一方法是通過調用函數:系統(...),用於執行shell命令和這樣的尷尬,就像運行的運行的get/set IP地址使用ifconfig殼sript。

什麼是運行「活動腳本」右/常見的方式(DHCP啓用/禁用;讀/寫系統設置)從嵌入式linux我的C應用程序?

謝謝。

+1

http://en.wikipedia.org/wiki/Unix_philosophy –

回答

0

DHCP是工作在網絡上的協議。它在用戶空間程序中實現,例如uDHCPc。沒有內核實現,也沒有辦法爲此使用ioctls。 system()函數可以工作,但它也會產生一箇中間shell。如果你想提高效率,你可以直接使用fork()和exec()來調用uDHCPc作爲子進程。

+0

包裝uDHCPc與我自己的進程,它會捕獲信號/消息來改變其狀態(啓用/禁用)和exec()它是否有效?或者重新編譯uDHCPc(或任何其他DHCP客戶端實現)並將信號/消息機制集成到客戶端會更好?這些方法有什麼區別嗎? – ariebarie

+0

也許最好在初始化時使用不同的運行級別來運行它。然後你可以切換運行級別。 – Keith

相關問題