access函数:

access函数主要用于在使用文件之前获取文件的属性以免错误的使用文件的权限,造成文件读写过程中出错;

 #include <unistd.h>int access(const char *pathname, int mode);
成功返回0,出错返回-1
功能:检查是否可以对某文件进行某种操作
    F_OK 值为0,判断文件是否存在R_OK 值为4,判断对文件是否有读权限W_OK 值为2,判断对文件是否有写权限X_OK 值为1,判断对文件是否有读写权限

坚持使用代码说话,编写access的函数并进行测试:

编写函数file_access.c函数,并编译运行进行测试测试结果如下:

andrew@andrew-Thurley:~/work/filedir$ ./a.out *
7852 can read a.out
7852 can write a.out
7852 can rexcute a.out
7852 can read bin
7852 can write bin
7852 can rexcute bin
7852 can read date.txt
7852 can write date.txt
7852 can not  excute date.txt
7852 can read include
7852 can write include
7852 can rexcute include
7852 can read l_date
7852 can write l_date
7852 can not  excute l_date
7852 can read obj
7852 can write obj
7852 can rexcute obj
7852 can read src
7852 can write src
7852 can rexcute src
7852 can read zieckey_fifo
7852 can write zieckey_fifo
7852 can rexcute zieckey_fifo

file_access.c函数:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>int main(int argc, char *argv[])
{if(argc < 2){fprintf(stderr, "usage: %s files \n", argv[0]);exit(1);}int i;for(i = 1; i < argc;  i++){if(access(argv[i], R_OK)){printf("%d can not read %s\n", getpid(),argv[i]);}else{printf("%d can read %s\n", getpid(), argv[i]);}if(access(argv[i], W_OK)){printf("%d can not write %s\n", getpid(),argv[i]);}else{printf("%d can write %s\n", getpid(), argv[i]);}if(access(argv[i], X_OK)){printf("%d can not  excute %s\n", getpid(),argv[i]);}else{printf("%d can rexcute %s\n", getpid(), argv[i]);}}return 0;
}
  #include <fcntl.h>           /* Definition of AT_* constants */#include <unistd.h>int faccessat(int dirfd, const char *pathname, int mode, int flags);

linux文件-access函数相关推荐

  1. Linux 高并发学习笔记 - Linux 文件操作函数

    1.6.2 Linux 文件操作函数 Linux 高并发学习笔记 - 笔记索引 前言 关于文件操作函数这一块主要用英文文档的形势书写,因为凉皮在写文档的时候发现Markdown用起来太繁琐了.那么关于 ...

  2. linux文件操作函数程序,linux 文件操作函数

    文件操作(Linux) 常用linux函数库中的基本函数 1. close函数,关闭文件 2. creat函数,建立文件 3. dup.dup2函数,复制文件描述词 4. fcntl函数,文件描述词操 ...

  3. linux下access函数的应用

    Linux内核总是根据进程的有效用户ID和有效组ID来决定一个进程是否有权访问某个文件.因此,在编写调整用户ID的程序时,在读写一个文件之前必须明确检查其用户是否原本就有对此文件的访问权限.为了实现这 ...

  4. linux文件操作函数

    前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 --------------------------------------- ...

  5. linux c access 函数 文件 目录 路径 是否存在

    函数功能 检查调用进程是否可以对指定的 文件/目录 执行某种操作. 函数头文件 #include <stdio.h> #include <unistd.h> 函数原型 int ...

  6. linux 文件操作函数,Linux下的文件操作函数及creat用法

    编写Linux应用程序要用到如下工具: (1)编译器:GCC GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:gcc [options] [filenames]. ...

  7. linux文件字节函数,各位大侠:linux/unix下有什么双字节的字符类型及其一整套处理函数? 高分送出,请帮帮小弟!!!!!!...

    linux/unix下小弟需要操作双字节,相对单字节char 有什么双字节的字符类型及其一整套处理函数,如strstr(),strcpy(),strchr等功能相同的双字节操作函数,它用到什么头文件? ...

  8. 九、Linux文件 - fopen函数和fclose函数讲解

    目录 1.fopen函数 2.fclose函数 3.fopen函数和fclose实战 1.fopen函数 fopen fwrite fread fclose ...属于标准C库 include < ...

  9. linux文件access denied,Linxu系统使用SSH报错Access Denied怎么办?

    一些Linux用户在登录SSH的时候,出现了Access Denied错误,面对这个问题,Linux用户们该如何进行解决呢?现在就让小编来给大家介绍一个解决的方法吧,有需要的用户快来看看吧. 解决方法 ...

  10. linux文件拷贝函数,linux:文件操作函数(open,close,read,write)

    1. open()函数 功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数. 所需头文件:#include ,#include ,#include (我们用的时候 ...

最新文章

  1. php 字符串去html,PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
  2. 【Android工具】免费二次元追番神器,各种字幕组新番旧番良心资源,重要的事说三遍:没有广告!没有广告!没有广告...
  3. for惠普2013实习生
  4. DPM2012学习(九),配置DPM发送电子邮件
  5. java 断点_每个Java开发人员应拥有的持久断点
  6. Linux入门笔记——type、switch、help、man、apropos、whatis、info
  7. zabbix入门之添加监控项
  8. RBF的一维和二维逼近
  9. SQL_create_table创建表
  10. F2FS文件系统二 实验分析f2fs文件系统
  11. python之window下安装python2版的pyv8库 (window install python2 pyv8)
  12. Speed Gear(变速精灵XP) V6.0 - 免费版,破解版,绿色版
  13. hdjs---后盾网requireJS课程
  14. 《Java并发编程的艺术》-方腾飞、魏鹏、程晓明
  15. 财税!2020个人银行账户进账多少会被查?
  16. 百度云不限速下载最新破解真好用
  17. 6英寸手持终端丨三防手机丨手持PDA丨提高配送效率
  18. 国产步进电机驱动芯片TMI8420,可pin to pin​替代DRV8825
  19. 在三线城市工作爽吗?
  20. Web前端工程师怎么样呢?薪资待遇如何呢?

热门文章

  1. 极具潜力的新兴职业!
  2. 湫湫系列故事——消灭兔子(优先队列)
  3. NYOJ 201 作业题
  4. NYOJ 325 zb的生日
  5. Golang的指针类型
  6. WP缩略图出不了,打开缩略图提示“A TimThumb error has occured”
  7. Spring入门hello world常见问题及解决办法
  8. sqlserver、oracle数据库排序空值null问题解决办法
  9. [转]matlab 函数三种定义方式
  10. 编程方法学10:私有变量的重要性