rmdir(システムコール)が空のディレクトリでのみ機能するのはなぜですか?

rmdir(システムコール)が空のディレクトリでのみ機能するのはなぜですか?

親inodeでディレクトリへのリンクを自動的に無効にする方法はありませんか?ここに歴史的な理由はありますか?

ベストアンサー1

int rmdir(const char *pathname);

システムコール、POSIX.1-2001に準拠しています。これで、単一のディレクトリだけでなく、その中にあるすべてのサブディレクトリとファイルを削除するようにこのシステムコールを希望する状況を想像してみてください。

  1. このロジックをカーネルに追加する必要がありますが、これは簡単な作業ではなく、そうするとカーネルが膨らみます。
  2. 実行時間に関して、ジョブは定義されていません。
  3. カーネルにはあま​​り意味のない処理が失敗することができる方法がたくさんあります。

おすすめ記事