revoke 子例程
用途
撤销对文件的访问权。
库
标准 C 库 (libc.a)
语法
int revoke ( Path)
char *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 | 对于此文件,未实现访问权撤销。 |