Linux内核老是根据进程的有效用户ID和有效组ID来决定一个进程是否有权访问某个文件。函数
所以,在编写调整用户ID的程序时,在读写一个文件以前必须明确检查其用户是否本来就有对此文件的访问权限。spa
为了实现这种确认,须要使用access函数。进程
通常形式为;
#include<unistd.h>
int access(const char *pathname,int mode);test
其中,pathname是但愿检验的文件名(包含路径),mode是欲检查的访问权限,以下所示权限
R_OK 检验调用进程是否有读访问权限
W_OK 检验调用进程是否有写访问权限
X_OK 检验调用进程是否有执行访问权限
F_OK 检验规定的文件是否存在程序
access检查用户对一个文件的权限状况,根据mode的值检查调用进程对文件pathname是否具备读、写、或执行的权限。若进程实际用户具备mode所指出的权限,access返回0.不然返回-1.文件
例如:
access("test",06);
access("test",F_OK);
分别用来检查实际用户对test文件是否具备读写权限和test文件是否存在。co