文件和目录之access函数
本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。
当用open函数打开一个文件时,内核以进程的有效用户ID和有效组ID为基础执行其访问权限测试。有时,进程也希望按其实际用户ID和实际组ID来测试其访问能力。例如当一个进程使用设置用户ID或设置组ID特征作为另一个用户(或组)运行时,就可能会有这种需要。即使一个进程可能已经因设置用户ID以超级用户权限运行,它仍可能想验证其实际用户能否访问一个给定的文件。access函数是按照实际用户ID和实际组ID进行访问权限测试的。(该测试也分成四步,这与http://www.cnblogs.com/nufangrensheng/p/3502097.html中所述的一样,但将有效改为实际。)
#include <unistd.h>
int access( const char *pathname, int mode );
返回值:若成功则返回0,若出错则返回-
其中,mode是表4-6中所列常量的按位或。
表4-6 access函数的mode常量,取自<unistd.h>
| mode | 说明 |
| R_OK | 测试读权限 |
| W_OK | 测试写权限 |
| X_OK | 测试执行权限 |
| F_OK | 测试文件是否存在 |
程序清单4-2 access函数实例
[root@localhost apue]# cat prog4-.c
#include "apue.h"
#include <fcntl.h> int
main(int argc, char *argv[])
{
if(argc != )
err_quit("usage: prog4-2 <pathname>");
if(access(argv[], R_OK) < )
err_ret("access error for %s", argv[]);
else
printf("read access OK\n");
if(open(argv[], O_RDONLY) < )
err_ret("open error for %s", argv[]);
else
printf("open for reading OK\n");
exit();
}
文件和目录之access函数的更多相关文章
- 文件和目录:access函数
access函数是按照实际用户ID和实际组ID进行访问权限测试的: #include <unistd.h> int access( const char *pathname, int mo ...
- python—— 文件的打开模式和文件对象方法 & os、os.path 模块中关于文件、目录常用的函数使用方法
引用自“鱼c工作室” 文件的打开模式和文件对象方法 : https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&ext ...
- os、os.path模块中关于文件、目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举 ...
- python编程os、os.path 模块中关于文件、目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名( ...
- 文件和目录之umask函数
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. umask函数为进程设置文件模式创建屏蔽字,并 ...
- 文件和目录之utime函数
一个文件的访问和修改时间可以用utime函数更改. #include <utime.h> int utime( const char *pathname, const struct uti ...
- php中检查文件或目录是否存在的代码小结
检查文件或目录是否存在 ,我们使用了php中常用的函数file_exists,这个函数就可以实现我想要的功能,下面大家慢慢参考一下下面是一个简单的检查文件是否存在的实例代码: <?php $fi ...
- Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)
Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...
- 【转】Python之文件与目录操作(os、zipfile、tarfile、shutil)
[转]Python之文件与目录操作(os.zipfile.tarfile.shutil) Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读 ...
随机推荐
- OK335xS davinci mdio driver hacking
/******************************************************************************* * OK335xS davinci m ...
- easyui资源
官网地址:http://www.jeasyui.com/index.php(相关文档示例,有demo, tutorial, documentation) 未混淆的源码:http://jquery-ea ...
- 如何将域中的AD数据导入SharePoint
转:http://www.cnblogs.com/wallis0922/archive/2010/09/29/1838292.html 最近刚装好sharepoint2010,想要研究一下,第一件想做 ...
- ASP.NET MVC中默认Model Binder绑定Action参数为List、Dictionary等集合的实例
在实际的ASP.NET mvc项目开发中,有时会遇到一个参数是一个List.Dictionary等集合类型的情况,默认的情况ASP.NET MVC框架是怎么为我们绑定ASP.NET MVC的Actio ...
- (转)INSTALLSHIELD 2010 预安装组件和软件
使用Installshield2010提供的组件 大家再开发软件产品的时候经常是基于某些软件和类库的,像我们的项目就用到了.Net Framework3.5,mapinfo,sqlserver 200 ...
- 6、四大组件之二-Service初步
一.什么是Service 有些用时比较长得操作我们希望他在后台运行 ,不耽误我们当前的操作 . 这就引入了Service概念 . 常见的比如:访问网络 , 文件IO操作 , 大数据的数据库任务,播放音 ...
- NBUT1457 Sona 莫队算法
由于10^9很大,所以先离散化一下,把给你的这一段数哈希 时间复杂度O(nlogn) 然后就是分块莫队 已知[L,R],由于事先的离散化,可以在O(1)的的时间更新[l+1,r],[l,r+1],[l ...
- unity3d教程资源
unity2d教程网 http://learnunity2d.com/2d-shootem-up-tutorial/ 横版射击2d游戏系列教程 http://pixelnest.io/tutorial ...
- usb 驱动
usb 驱动学习总结: usb 采用分层的拓扑结构,金字塔型,最多是7层.usb 是主从结构,主和主或者从和从之间不能交换数据.理论上一个usb主控制器最多可接127个设备,协议规定每个usb设备具有 ...
- 常用Raspberry Pi周边传感器的使用教程
在Raspberry Pi 的使用和开发过程中,你可能时常需要一些硬件和传感器等来支持你的开发工作,例如,加入一个超声波测距的模块来让你的Raspberry Pi具备测距功能,加入一个测温模块以实现测 ...