RMDIR(2)

名前
rmdir - ディレクトリを削除する

書式
#include <unistd.h>

int rmdir(const char *pathname);

説明
rmdir はディレクトリを削除する。削除するディレクトリは空でなければならない。

返り値
成功した場合はゼロが返される。エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

EPERM
    pathname を含んでいるファイル・システムがディレクトリの 削除をサポートしていない。

EFAULT
    pathname がアクセス可能なアドレス空間の外を指している。

EACCES
    プロセスの実効(effective)ユーザーID に pathname を含んでいるディレクトリへの書き込みアクセスが許されていないか、 pathname に含まれているディレクトリのどれかに検索(実効)許可がない。

EPERM
    pathname を含んでいるディレクトリにスティッキー・ビット(sticky-bit) (S_ISVTX) が設定されていて、プロセスの実効ユーザーIDが削除しようとするファイルの uid ともそれを含んでいるディレクトリのユーザーIDとも異なっている。

ENAMETOOLONG
    pathname が長過ぎる

ENOENT
    pathname の中のディレクトリ部分が存在しないか、壊れた(dangling) シンボリック・リンク(symbolic link)である。

ENOTDIR
    pathname か pathname に含まれているディレクトリ部分が、実際には、ディレクトリでない。

ENOTEMPTY
    pathname が . と .. 以外のエントリ(entry)を含んでいる。

EBUSY
    pathname があるプロセスの現在のワーキング・ディレクトリ またはルート・ディレクトリである。

ENOMEM
    十分なカーネルのメモリ(memory)がない。

EROFS
    pathname が読み込み専用(read-only)のファイル・システムを参照している。

ELOOP
    pathname を解決する際に遭遇したシンボリック・リンクが多過ぎる。

準拠
SVr4, SVID, POSIX, BSD 4.3

バグ
NFS プロトコルの潜在的な不良によりまだ使用中のディレクトリの 突然の消滅を引き起こすことがある。

関連項目
rename(2), mkdir(2), chdir(2), unlink(2), rmdir(1), rm(1)