linux中的access函数

  1. #include  
  2. int access(const char* pathname, int mode);  
  3. int faccessat(int fd, const char* pathname, int mode, int flag);  

先说简单的access函数,pathname是文件的路径名+文件名,指定要测试的文件;mode则指明测试哪种权限,实际上有4种:

  • F_OK 值为0,判断文件是否存在
  • R_OK 值为4判断对文件是否有读权限
  • W_OK 值为2判断对文件是否有写权限
  • X_OK 值为1判断对文件是否有读写权限
  • 对于faccessat函数,其用fd来指定目录,mode的含义不变,而flag可以指定是判断有效用户的权限还是实际用户的权限。

    如果flag的值是AF_EACCESS(值为0x200)的话,判断的是有效用户的权限;

    如果flag的值是0的话,则跟access一样,判断的是实际用户的权限。

    当判断有权限时,返回0,否则返回-1.


你可能感兴趣的:(学习新知识)