UNDELETE(2) |
FreeBSD System Calls Manual |
UNDELETE(2) |
名称
undelete —
削除したファイルの復旧を試みる
ライブラリ
Standard C Library (libc, -lc)
書式
#include < unistd.h>
int
undelete( const char *path);
解説
undelete() システムコールは、
path によって指定された削除されたファイルを復旧復することを試みます。現在、これは、指定されたオブジェクトがユニオンファイルシステムのホワイトアウト (修正液で修正) であるとき合に限り、動作します。システムコールは、ホワイトアウトを削除することによって、ユニオンスタックの下層のあらゆるオブジェクトをもう一度も目に見えるようにします。
最終的に、 undelete() 機能は、ログ構造化されたファイルシステムのように削除されたファイルを復旧することができる他のファイルシステムに拡張されます。
戻り値
The
undelete() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
エラー
undelete() は、次の場合以外成功します:
-
[
ENOTDIR]
-
パス接頭辞の構成要素がディレクトリではありません。
-
[
ENAMETOOLONG]
-
パス名のの構成要素が、255 文字を越えるか、またはすべてのパス名が、1023 文字を超えました。
-
[
EEXIST]
-
パスがホワイトアウトを参照していません。
-
[
ENOENT]
-
指定されたホワイトアウトが、存在しません。
-
[
EACCES]
-
検索パーミッションが、パス接頭辞の構成要素のために拒否されます。
-
[
EACCES]
-
書き込みパーミッションが、未削除であるために名前を含んでいるディレクトリで否定されます。
-
[
ELOOP]
-
パス名を変換するときに、あまりにも多くのシンボリックリンクに遭遇しました。
-
[
EPERM]
-
名前を含んでいるディレクトリがスティッキとマークされ、含んでいるディレクトリが、実効ユーザ ID によって所有されていません。
-
[
EINVAL]
-
パスの最後の構成要素が、‘
..
’です。
-
[
EIO]
-
I/O エラーがディレクトリエントリを更新している間に生じました。
-
[
EROFS]
-
名前が、読み込み専用のファイルシステムに存在します。
-
[
EFAULT]
-
path 引数が、プロセスの割り付けられたアドレス空間の外側を指しています。
歴史
undelete() システムコールは、
4.4BSD-Lite ではじめて登場しました。