revoke 子例程

用途

撤销对文件的访问权。

标准 C 库 (libc.a)

语法

int revoke ( Path)
char *Path;

描述

撤销 子例程撤销所有进程对文件的访问权。

撤销对该文件的所有访问权。 使用撤销子程序之前建立的文件描述符访问文件的后续尝试将失败,并导致进程返回值为-1,同时Erno全局变量被设置为EBADF

仅当文件的有效用户标识与文件所有者标识相同,或者调用进程具有特权时,进程才能撤销对该文件的访问权。

注: 撤销 子例程对后续打开文件的尝试没有影响。 要确保对文件的互斥访问权,调用者应该在发出 撤销 子例程之前更改文件的访问方式。 当前, 撤销 子例程仅在终端设备上工作。 Chmod 子例程更改文件访问方式。

参数

描述
路径 要撤销对其访问权的文件的路径名。

返回值

成功完成后, 撤销 子例程将返回值 0。

如果撤销子程序失败,则返回值为-1,并设置errno全局变量来指示错误。

错误代码

如果满足以下任何条件,那么 撤销 子例程将失败:

描述
ENOTDIR 路径前缀的组件不是一个目录。
EACCES 对路径前缀的组件的搜索许可权被拒绝。
ENOENT 路径前缀的某个组件不存在,或者进程具有 不允许截断 属性 (请参阅 乌勒明 子例程)。
ENOENT 路径名为空。
ENOENT 已命名符号链接,但它所引用的文件不存在。
ESTALE 该进程的根目录或当前目录位于已卸载的虚拟文件系统中。
EFAULT 路径 参数指向进程地址空间之外的位置。
ELOOP 在转换路径名时迂到过多的符号链接。
ENAMETOOLONG 路径名的组件超过 255 个字符,或者整个路径名超过 1023 个字符。
EIO 在操作期间发生 I/O 错误。
EPERM 调用过程的有效用户标识与文件的所有者标识不相同。
EINVAL 对于此文件,未实现访问权撤销。