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 で登場しました。