remove -
ファイルやディレクトリを削除する
#include <stdio.h>
int remove(const char *pathname);
remove()
はファイルシステムからファイル名を削除する。
ファイルに対しては
unlink(2)
を、ディレクトリに対しては
rmdir(2) を呼び出す。
もしその名前が
ファイルへの最後のリンクで、かつ、どのプロセスもそのファイルを
開いていないなら、ファイルも削除する。ファイルの占めていた
領域は他で使うことができるようになる。
名前がファイルへの最後のリンクであっても、どこかのプロセスが
そのファイルを開いているなら、ファイルの最後のファイルディスクリプター
(file descriptor)
が閉じられるまでファイルは存在し続ける。
名前が指しているのがシンボリックリンクなら、そのリンクを削除する。
名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、
そのソケットなどを開いているプロセスはそのまま使い続けることができる。
成功した場合は 0
が返される。エラーの場合は
-1 が返され、
errno
が適切に設定される。
発生するエラーは
unlink(2) および
rmdir(2)
と同じものである。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
remove() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C89, C99, 4.3BSD.
NFS
プロトコルに内在する問題により、まだ使用中のファイルが想定外に消えてしまうことがありえる。
rm(1),
unlink(1),
link(2),
mknod(2),
open(2),
rename(2),
rmdir(2),
unlink(2),
mkfifo(3),
symlink(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。