linux c access函数怎么用
发布时间 - 2023-03-27 00:00:00 点击率:次linux c access函数的作用是确定文件的访问权限,该函数的使用语法是“int access(const char * pathname, int mode);”,其中参数“pathname”表示需要检测的文件路径名。
本教程操作环境: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。
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 #includeint 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视频教程》
# linux
# access
# 宋体
# 访问权限
# 有一
# 还可以
# 则是
# 不存在
# 几种
# 不符合
# 而非
# 太长
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建高效香港服务器网站?
如何在服务器上三步完成建站并提升流量?
微信小程序 wx.uploadFile无法上传解决办法
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
中山网站制作网页,中山新生登记系统登记流程?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何实现数据库事务?(DB Facade示例)
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel如何实现模型的全局作用域?(Global Scope示例)
深圳网站制作平台,深圳市做网站好的公司有哪些?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何用已有域名快速搭建网站?
Android滚轮选择时间控件使用详解
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Laravel如何实现API资源集合?(Resource Collection教程)
如何在阿里云通过域名搭建网站?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
个人摄影网站制作流程,摄影爱好者都去什么网站?
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Laravel如何为API编写文档_Laravel API文档生成与维护方法
EditPlus中的正则表达式实战(5)
Laravel安装步骤详细教程_Laravel环境搭建指南
如何自定义建站之星模板颜色并下载新样式?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
如何在阿里云高效完成企业建站全流程?
如何在香港免费服务器上快速搭建网站?
如何在万网利用已有域名快速建站?
Laravel怎么在Controller之外的地方验证数据
如何选择PHP开源工具快速搭建网站?
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel如何使用Blade模板引擎?(完整语法和示例)
5种Android数据存储方式汇总
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
如何在腾讯云免费申请建站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
jQuery validate插件功能与用法详解
Python3.6正式版新特性预览
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】


);
return 0;
}
// 范例2
#include