zoukankan      html  css  js  c++  java
  • 12、【Linux系统编程】access函数

    1、介绍

             头文件:#include < unistd.h>
      定义函数:int access(const char * pathname, int mode);
      函数说明:access()会检查是否可以读/写某一已存在的文件

    2、参数mode 有几种情况组合

      1、R_OK, W_OK, X_OK和F_OK. R_OK, W_OK 与X_OK 用来检查文件是否具有读取写入和执行的权限。
      2、F_OK 则是用来判断该文件是否存在。由于access()只作权限的核查, 并不理会文件形态或文件内容,因此,如果一目录表示为”可写入”,表示可以在该目录中建立新文件等操作,而非意味此目录可以被当做文件处理。例如:你会发现DOS 的文件都具有”可执行”权限,但用execve()执行时则会失败。

    3、返回值

      若所有欲查核的权限都通过了检查则返回0 值,表示成功,只要有一权限被禁止则返回-1。

    4、错误代码

       1、EACCESS 参数pathname 所指定的文件不符合所要求测试的权限.
      2、EROFS 欲测试写入权限的文件存在于只读文件系统内.
      3、EFAULT 参数pathname 指针超出可存取内存空间.
      4、EINVAL 参数mode 不正确.
      5、ENAMETOOLONG 参数pathname 太长.
      6、ENOTDIR 参数pathname 为一目录.
      7、ENOMEM 核心内存不足
      8、ELOOP 参数pathname 有过多符号连接问题.
      9、EIO I/O 存取错误.

    【实例】

    main.c

     1 #include <sys/types.h>
     2 #include <sys/stat.h>
     3 #include <time.h>
     4 #include <stdio.h>
     5 #include <stdlib.h>
     6 #include <unistd.h>
     7 
     8 int main(int argc, char *argv[])
     9 {
    10     //R_OK 是否有读权限
    11     //W_OK 是否有写权限
    12     //X_OK 是否有执行权限
    13     //F_OK 测试一个文件是否存在
    14     if(access("abc",F_OK) <0)
    15     {
    16         perror("abc");
    17         exit(1);
    18     }
    19 
    20     printf("abc is ok
    ");
    21 
    22     return 0;
    23 }

    更多文件操作的函数,参见https://blog.csdn.net/FadeFarAway/article/details/53968075

  • 相关阅读:
    centos6 Cacti部署文档
    nginx 3.nginx+fastcgi
    nginx 2.基本配置
    nginx 1.安装
    mongodb入门教程二
    mongodb入门教程
    一款jQuery立体感动态下拉导航菜单特效
    一款jQuery仿海尔官网全屏焦点图特效代码
    一款非常炫酷的jQuery动态随机背景滚动特效
    一款jquery编写图文下拉二级导航菜单特效
  • 原文地址:https://www.cnblogs.com/Long-w/p/9437622.html
Copyright © 2011-2022 走看看