REVOKE(2) |
FreeBSD System Calls Manual |
REVOKE(2) |
名称
revoke —
ファイルアクセスを無効にする
ライブラリ
Standard C Library (libc, -lc)
書式
#include < unistd.h>
int
revoke( const char *path);
解説
revoke() システムコールは、
path によって指定されたファイルに対してシステムのすべての現在のオープンされたファイル記述子を無効にします。無効にされたキャラクタデバイスファイルからの
read() が、0 のカウント (ファイルの終り) を返すこと、と
close() システムコールが、成功することを例外として、あらゆるそのような記述子のその後の操作は、失敗します。ファイルがオープンされるデバイスのための特殊ファイルであるなら、デバイスのフローズ関数は、あたかもファイルへのすべてのオープンされた参照がクロースされているように、呼び出されます。
ファイルへのアクセスは、その所有者またはスーパユーザによってのみ無効にされます。 revoke() システムコールは、現在、ブロック特殊デバイスファイルとキャラクタ特殊デバイスファイルのためだけにサポートされています。それは、通常、端末の以前のユーザによってあらゆるアクセスを防いで、新しいログインセッションのために端末デバイスを準備するために使用されます。
戻り値
The
revoke() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
エラー
指定されたファイルへのアクセスは、次の 1 つでなければ、無効にされます:
-
[
ENOTDIR]
-
パス接頭辞の構成要素が、ディレクトリではありません。
-
[
ENAMETOOLONG]
-
パス名の構成要素が、255 文字を越えるか、またはすべてのパス名が、1024 文字を超えました。
-
[
ENOENT]
-
指定されたファイル、またはパス名の構成要素が存在しません。
-
[
EACCES]
-
検索のパーミッションが、パス接頭辞の構成要素のために拒否されます。
-
[
ELOOP]
-
パス名を変換するときに、あまりにも多くのシンボリックリンクに遭遇しました。
-
[
EFAULT]
-
path 引数が、プロセスの割り付けられたアドレス空間の外側を指しています。
-
[
EINVAL]
-
この実装は、指定されたファイルでの
revoke() 操作をサポートしていません。
-
[
EPERM]
-
呼び出し側が、ファイルの所有者でもスーパユーザでもありません。
歴史
revoke() システムコールは、
4.3BSD-Reno ではじめて登場しました。