0

0

linux c access函数怎么用

藏色散人

藏色散人

发布时间:2023-03-27 10:46:49

|

2050人浏览过

|

来源于php中文网

原创

linux c access函数的作用是确定文件的访问权限,该函数的使用语法是“int access(const char * pathname,  int mode);”,其中参数“pathname”表示需要检测的文件路径名。

linux c access函数怎么用

本教程操作环境:linux5.9.8系统、Dell G3电脑。

linux c access函数怎么用?

linux C access

【1】作用

确定文件的访问权限

【2】头文件

#include 

【3】函数定义

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

【4】参数说明

  pathname: 需要检测的文件路径名

  mode: 参数为0时,表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 这个函数还可以检查其它文件属性:

  06 检查读写权限

  04 检查读权限

  02 检查写权限

  01 检查执行权限

  00 检查文件的存在性

【5】返回值

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

【6】函数说明

  access()会检查是否可以读/写某一已存在的文件。

  参数mode有几种情况组合, R_OK,W_OK,X_OK 和F_OK。

绘蛙AI修图
绘蛙AI修图

绘蛙平台AI修图工具,支持手脚修复、商品重绘、AI扩图、AI换色

下载

  R_OK,W_OK与X_OK分别用来检查文件是否具有读取、写入和执行的权限。F_OK则是用来判断该文件是否存在。

  由于access()只作权限的核查,并不理会文件形态或文件内容,因此,如果一目录表示为“可写入”,表示可以在该目录中建立新文件等操作,而非意味此目录可以被当做文件处理。

  例如,你会发现DOS的文件都具有“可执行”权限,但用execve()执行时则会失败。

【7】错误代码

  EACCESS  参数pathname 所指定的文件不符合所要求测试的权限。

  EROFS   欲测试写入权限的文件存在于只读文件系统内。

  EFAULT  参数pathname指针超出可存取内存空间。

  EINVAL  参数mode 不正确。

  ENAMETOOLONG  参数pathname太长。

  ENOTDIR  参数pathname为一目录。

  ENOMEM  核心内存不足    

  ELOOP   参数pathname有过多符号连接问题。

  EIO I/O  存取错误。

【8】附加说明

    使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文件可能会造成系统安全上的问题。

【9】范例

// 范例1
#include 
int main()
{
    if (access("/etc/passwd", R_OK) == 0)
        printf("/etc/passwd can be read\n");
    return 0;
}
// 范例2
#include 
#include 
int file_exists(char *filename);
int main(void)
{
    printf("Does NOTEXIST.FIL exist: %s\n",
    file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
    return 0;
}
int file_exists(char *filename)
{
    return (access(filename, 0) == 0);
}

【10】相关函数

stat,open,chmod,chown,setuid,setgid

推荐学习:《linux视频教程

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

97

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

51

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

83

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

432

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

49

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

13

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号