key=value 設定ファイルを読み書きするための一般的な関数を探しています。おそらく、Windows で使用される .INI ファイルを変更するための WritePrivateProfileString() 関数のようなものです。
http://www.freedesktop.org/wiki/Specifications/desktop-entry-specで説明されているように、.desktop および .directory ファイルを編集したいので 、freedesktop 仕様に準拠する関数 (C/C++) が必要です。既存のスペース、コメント、および UTF-8 を保持するなど。
そのようなファイルを読み書きするための独自の関数がありますが、関数が仕様のすべてのケースを保持するかどうかはわかりません。また、ASCII のみをサポートするため、値を持つそのようなファイルの作成と読み取りにのみ適しています。必要です (既存の準拠ファイルを変更するためではありません)。
Linux デスクトップ (KDE、Gnome) とファイル マネージャー (Nautalus、Dolpin、Konqueror) は、共通のライブラリを使用していると思います。
以下を見つけましたが、どれが freedesktop 仕様に準拠しているかわかりません:
- Boost.property_tree (UTF をサポート)
- QSettings (Qt のみ?)
- ciniparser (読み取り専用?)
- gnome キー値ファイル パーサー (読み取り専用?)