Linux c access 函数

 #include <unistd.h>

 int access(const char *pathname, int mode);


DESCRIPTION
       access() checks whether the calling process can access the file pathname.  If pathname
       is a symbolic link, it is dereferenced.


       The mode specifies the accessibility check(s) to be performed, and is either the value
       F_OK,  or  a mask consisting of the bitwiseOR of one or more ofR_OK, W_OK, andX_OK.
       F_OK tests for the existence of the file.  R_OK, W_OK, and X_OK test whether the  file
       exists and grants read, write, and execute permissions, respectively.


       The check is done using the calling process's real UID and GID, rather than the effec‐
       tive IDs as is done when actually attempting an operation (e.g., open(2)) on the file.
       This allows set-user-ID programs to easily determine the invoking user's authority.


       If  the calling process is privileged (i.e., its real UID is zero), then an X_OK check
       is successful for a regular file if execute permission is enabled for any of the  file
       owner, group, or other.


RETURN VALUE
       On  success (all requested permissions granted), zero is returned.  On error (at least
       one bit in mode asked for a permission that is denied, or some other error  occurred),
       -1 is returned, and errno is set appropriately.

ERRORS
       access() shall fail if:  error的可能错误值


       EACCES The  requested  access  would  be  denied  to the file, or search permission is
              denied for one of the directories in the path prefix of  pathname.   (See  also
              path_resolution(7).)


       ELOOP  Too many symbolic links were encountered in resolving pathname.


       ENAMETOOLONG
              pathname is too long.


       ENOENT A component of pathname does not exist or is a dangling symbolic link.


       ENOTDIR
              A component used as a directory in pathname is not, in fact, a directory.


       EROFS  Write permission was requested for a file on a read-only file system.


       access() may fail if:


       EFAULT pathname points outside your accessible address space.


       EINVAL mode was incorrectly specified.

       EIO    An I/O error occurred.


       ENOMEM Insufficient kernel memory was available.


       ETXTBSY
              Write access was requested to an executable which is being executed.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值