スポンサーリンク

REVOKE(2) FreeBSD システムコールマニュアル REVOKE(2)

名称

revoke − ファイルアクセスを無効にする

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

int

revoke(const char *path);

解説

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

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

戻り値

関数 revoke() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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

       [ENOTDIR]

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

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

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

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

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

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

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

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

関連項目

close(2)

歴史

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

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク