2017-10-25 7 views
0

私は現在、システムコールによってsedを使用してパラメータファイル内の単一の値を編集するCプログラムを持っています。私はこの値を編集するためにCのファイルライブラリを使用するプログラムを変更したいと思いますが、これを行う方法を知っている唯一の方法は、ファイル全体を読み込み、値を変更し、ファイルを書き換えることです。これを行うより効率的な方法はありますか?このプログラムは組み込み機器での使用を想定しており、可能な限り最も効率的なソリューションを使用したいと考えています。Cでファイル内の単一の値を効率的に編集する

+0

ファイルを開き、カーソルをその場所に移動し、変更して保存します。実際にはファイル全体をロードしない点を除けば、sedと同じように動作します。 – texasbruce

+0

はい、ファイルを開いて、自分自身を値に置き、新しいものを書き込むためにseekを使います。 – Fredrik

+0

...新しいデータが以前のデータと同じ長さでない場合は...? –

答えて

1

ファイルを使って作業することは、実際には挿入や削除の前にできないという意味での配列操作のようなものです。挿入と削除は、ファイル/アレイの残りの部分をシフト(コピー)する必要があります。要素の置換のみが可能です(読み書きのためにファイルを開き、seekを使用して)。

ファイル全体を読み書きすることは、特に小さなファイルの場合には非常に効率的です。メモリ使用量が問題でない場合は、それが私が取るアプローチです。

特定の状況では、他のソリューションが優れているかもしれませんが、一般的にはあなたのアプローチがベストです。

関連する問題