2011-06-28 29 views
2

私は検索してその答えを見つけられなかったので、一般的な概念で何かを逃しているかもしれません... 私は組み込みLinux、C言語でGUIアプリケーションを書いています。linux組み込みプログラミング方法 - ネットワーク設定

  • DHCPクライアントモード - 私はファイルシステム上でuDHCPcアプリケーションでビジーボックスを持っています。
  • DHCPが無効になっている場合は、IP、サブネット、ゲートウェイを構成します。

ソケット上でioctlを使用してIP、サブネット、ゲートウェイを変更できることが既に分かっています。 私のアプリケーションからuDHCPcを起動するための唯一の方法は、関数を呼び出すことです:system(...)はシェルコマンドを実行するためのもので、ipconfigのget/setを実行するシェルスクリプトを実行するのと似ています。

組み込みLinuxのCアプリケーションから "スクリプトの実行"(DHCPの有効化/無効化、システム設定の読み取り/書き込み)を実行するための適切な方法は何ですか?

ありがとうございました。

+1

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

答えて

0

DHCPは、ネットワーク上で動作するプロトコルです。 uDHCPcなどのユーザー空間プログラムに実装されています。カーネルの実装はなく、ioctlを使用する方法もありません。 system()関数は動作しますが、中間シェルも生成されます。効率を上げたい場合は、fork()とexec()を使用してuDHCPcをサブプロセスとして呼び出すことができます。

+0

uDHCPcをステータス(有効/無効)とexec()を変更するシグナル/メッセージをキャッチする独自のプロセスでラップすると効率的ですか?またはuDHCPc(またはDHCPクライアントの他の実装)を再コンパイルして、シグナル/メッセージメカニズムをクライアントに統合する方が良いでしょうか?メソッド間に違いはありますか? – ariebarie

+0

異なるランレベルのinitで実行する方が良いかもしれません。そして、ランレベルを切り替えることができます。 – Keith

関連する問題