REVOKE(2)

名称
revoke - ファイルアクセスを無効にする

ライブラリ
libc

書式
<unistd.h> int revoke(const char *path)

解説
revoke() システムコールは、 path によって指定されたファイルの、システム内に現在ある すべてのオープンファイル記述子を無効にします。 そのような記述子についての後続の操作は全て失敗します。 ただし、キャラクタ型デバイスファイルへの read() がカウント 0 (ファイルの終了) を返すのと、 close() システムコールが成功するのは例外です。 指定されたファイルが あるデバイスについてのオープンされた特殊ファイルであった場合、 そのファイルへのすべての参照がクローズされたかのように、 デバイスをクローズする関数が呼び出されます。

ファイルへのアクセスはその所有者または スーパユーザによってだけ無効にされます。 revoke() システムコールは、現時点ではブロック型およびキャラクタ型特殊ファイルに ついてのみサポートされています。 これは通常、新しいログインセッション用に端末デバイスを準備するとき、 以前の端末使用者によるアクセスを防止するために使用されます。

戻り値

エラー
次の場合を除いて、指定ファイルへのアクセスは無効にされます:

[ENOTDIR]
    パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1024 文字を越えています。

[ENOENT]
    指定されたファイルまたはパス名が存在しません。

[EACCES]
    指定されたパスには、検索が許可されていないディレクトリが含まれています。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[EFAULT]
    path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。

[EINVAL]
    システムは、指定されたファイルについて revoke() 操作をサポートしません。

[EPERM]
    呼び出し側がファイルの所有者でもスーパユーザでもありません。

関連項目
close(2)

歴史
revoke() システムコールは 4.3BSD Reno で登場しました。