Linux 環境 (Debian-Lenny) で C 言語でプログラムを作成しており、更新が利用可能になったときにプログラムを更新したいと考えています (新しい更新が利用可能になると、プログラムは通知されます)。プログラムが自分自身を更新できる方法を探しています。
私が考えているのは、メイン プログラムが新しいプログラムを呼び出して更新を処理するということです。アップデータ プログラムは、ソース コードを取得 (アクセス) し、ソース コードの変更に関する更新情報を受け取ります。たとえば、次のようになります。
edit1: line 20, remove column 5 to 20;
edit2: line25, remove column 4-7 then add "if(x>3){" from the column4
edit3: line 26, enter a new line and insert "x++;"
次に、メイン プロセスを強制終了し、ソース コードを再コンパイルしてから、新しいバイナリを古いバイナリに置き換えます。
または、プログラムが自分自身を更新できる機能を実装するためのより良い(より簡単な)標準的な方法はありますか?
このプログラムを使用して、Linux 組み込みボードを備えたシステムを制御しています。したがって、ソースコードを他の人がアクセスできるようにしたくありません (システムがハッキングされた場合など)。ソース コードを使用してプログラムを更新する最善の方法である場合、ソース コードを保護する方法を教えてください。ソース コードを暗号化するよう提案された場合、プログラムはどの関数 (Linux C) を使用してソース ファイルを暗号化および復号化できますか?