/etc/fstab
C++ を使用して CentOS インストールでファイルを編集しようとしています。別の構成ファイルに基づいて、fstabに存在しないエントリを追加するか、マウントポイントが同じfstabファイルのエントリを編集するという考えです。これにより、最初の起動時にシステムを適切にセットアップできます。
setmntent()
fstab のエントリが構成ファイルにも存在するかどうかを簡単に確認できるように、既存のエントリをgetmntent()
繰り返し処理することを見つけました。そして、addmntent()
まだ存在しないエントリを追加するために使用できます。ドキュメントには、エントリを編集できることについては何も記載されておらず、ファイルの最後に新しいエントリを追加するだけです。既存のエントリを編集したり、エントリを削除したりする方法はないようです。この機能が存在せず、CR のみで CRUD の UD が存在しないのは奇妙に思えます。
できることなら、自分でパーサーを書く必要はありません。
私の他の選択肢は次のとおりです。
- を使用してファイルを開きます
setmntent()
- を使用して fstab 全体をメモリに読み込み、
getmentent()
追加や編集を実行します - を使用してファイルを閉じます
endmntent()
- 書き込み
/etc/fstab
可能 - 閉じる
/etc/fstab
(ファイルを空にする) - を使用してfstabを開きます
setmntent()
- 以前に読み込んだエントリをループし、それらを使用して書き出す
addmntent()
おそらく大丈夫ですが、少し面倒です。