unix / linuxのディレクトリにread()、write()を使用できますか?

unix / linuxのディレクトリにread()、write()を使用できますか?

Unix / Linuxの他のファイルと同様に、ディレクトリで使用できますかread()write()ディレクトリもファイルと見なされるので混乱しています。

答え1

一部のファイルシステムではディレクトリでこれを許可しますread()が、そのディレクトリのデータ構造が文書化されていない可能性があるため、これはエラーと見なす必要があります。

write()影響を受けるディレクトリの整合性が破壊されるため、絶対に使用しないでください。

ディレクトリの公式インタフェースは次のとおりです。opendir(), closedir() readdir(), telldir(), seekdir()

答え2

そうではありません、プロの場所もあります。

directory, opendir, closedir, dirfd, fdopendir, readdir, readdir_r,
  rewinddir, seekdir, telldir(3) - directory operations

ディレクトリ操作(OpenBSDの)と最新のファイルシステム(または実際には10年、2年前のすべて)のための機能は、ディレクトリを通常のファイルにエンコードしません。

答え3

read()私はディレクトリの読み方の使い方を引用した1986年の本を持っています。その名前はUNIXオペレーティングシステムの設計10ページでこの使用法が記載されていますが、このコードは最新のUbuntuでは機能しません。

GoogleとGPTに要求することは1988年に専用の機能があったように見えたreaddir()ので、今は変更されました。

関連情報