RMDIR(2)

名称
rmdir - ディレクトリファイルを削除する

ライブラリ
libc

書式
<unistd.h> int rmdir(const char *path)

解説
rmdir() システムコールは、名前が path で指定されるディレクトリファイルを削除します。 ディレクトリには ‘’. と ‘..’ 以外のエントリがあってはなりません。

戻り値

エラー
次の場合を除いて、指定されたファイルが削除されます:

[ENOTDIR]
    パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。

[ENOENT]
    指定されたディレクトリが存在しません。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[ENOTEMPTY]
    指定されたディレクトリには ‘’. と ‘..’ 以外のファイルが含まれています。

[EACCES]
    指定されたパスには、検索が許可されていないディレクトリが含まれています。

[EACCES]
    削除するリンクが入っているディレクトリの書込みが許可されていません。

[EPERM]
    削除するディレクトリが入っているディレクトリはスティッキビットが 設定されており、削除したいディレクトリを含んでいるディレクトリ または削除するディレクトリのどちらかあるいは両方の所有者が 実効ユーザ ID とは異なっています。

[EBUSY]
    削除しようとしているディレクトリは、 ファイルシステムがマウントされているマウントポイントです。

[EIO]
    ディレクトリエントリを削除している間、 または inode の割り当てを解除している間に入出力エラーが発生しました。

[EROFS]
    削除するディレクトリエントリは読取り専用ファイルシステム上にあります。

[EFAULT]
    path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。

関連項目
mkdir(2), unlink(2)

歴史
rmdir() システムコールは 4.2BSD で登場しました。