rmdir

Autres langues

Langue: ja

Autres versions - même langue

Version: 2004-06-23 (fedora - 25/11/07)

Autres sections - même nom

Section: 2 (Appels système)

名前

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

書式

#include <unistd.h>

int rmdir(const char *pathname);

説明

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

返り値

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

エラー

EACCES
pathname を含んでいるディレクトリへの書き込みアクセスが プロセスの実効 (effective) UID に対して許可されていないか、 pathname に含まれているディレクトリのどれかに検索 (実行) 許可がないか、 pathname に至るまでのディレクトリのいずれかに対する検索許可がなかった。 (path_resolution(7) も参照のこと)
EBUSY
pathname がシステムや別のプロセスにより使用中で削除することができない。 Linux では、 pathname がマウントポイントとして使用されているか、 呼び出したプロセスのルートディレクトリであることを意味する。
EFAULT
pathname がアクセス可能なアドレス空間の外を指している。
EINVAL
pathname の最後のディレクトリ部分が . である。
ELOOP
pathname を解決する際に遭遇したシンボリック・リンクが多過ぎる。
ENAMETOOLONG
pathname が長過ぎる。
ENOENT
pathname の中のディレクトリ部分が存在しないか、壊れた (dangling) シンボリック・リンク (symbolic link) である。
ENOMEM
十分なカーネルのメモリがない。
ENOTDIR
pathnamepathname に含まれているディレクトリ部分が、実際には、ディレクトリでない。
ENOTEMPTY
ディレクトリ pathname... 以外のエントリがある。または、 pathname を構成する最後の要素が .. である。
EPERM
pathname を含んでいるディレクトリにスティッキー・ビット(sticky-bit) (S_ISVTX) が設定されていて、プロセスの実効ユーザーID が削除しようとするファイルの ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも異なり、 プロセスも権限 (Linux では CAP_FOWNER ケーパビリティ) がない。
EPERM
pathname を含んでいるファイル・システムがディレクトリの 削除をサポートしていない。
EROFS
pathname が読み込み専用のファイル・システムを参照している。

準拠

SVr4, 4.3BSD, POSIX.1-2001.

バグ

NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが 突然消滅する現象が引き起こされることがある。

関連項目

rm(1), rmdir(1), chdir(2), chmod(2), mkdir(2), rename(2), unlink(2), unlinkat(2)