飞凌嵌入式ElfBoard-目录权限之access

用于检查进程对指定文件或目录的访问权限的系统调用。它可以检查文件是否存在以及当前用户是否具有某种权限(如读、写或执行权限)。

1.头文件

#include <unistd.h>

2.函数原型

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

3.参数

1)pathname:指向要检查的路径名的指针。

2)mode:表示要检查的访问权限的类型,它可以是以下值的组合:

⚫F_OK: 检查文件是否存在。

⚫R_OK: 检查是否具有读取权限。

⚫W_OK: 检查是否具有写入权限。

⚫X_OK: 检查是否具有执行权限。

除了以上单个使用,也可以使用“|”进行组合使用,如:

⚫R_OK | W_OK: 检查读取和写入权限。

⚫R_OK | X_OK: 检查读取和执行权限。

4.返回值

成功返回0,失败返回-1。需要注意的是,如果使用组合使用,只要其中一项不通过,就会返回-1.

5.示例:(使用access检查文件权限

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

int main(){

const char *file="file_rw.txt";

int res=0;

printf("flie name:%s\n",file);

res = access(file, F_OK);

if (res == 0)

printf("File exists: OK\n");

else {

printf("File exists: NO\n");

exit(0);

}

res = access(file, R_OK);

if (res == 0)

printf("Read permission: OK\n");

else

printf("Read permission: NO\n");

res = access(file, W_OK);

if (res == 0)

printf("Write permission: OK\n");

else

printf("Write permission: NO\n");

res = access(file, X_OK);

if (res == 0)

printf("Execution permission: OK\n");

else

printf("Execution permission: NO\n");

exit(0);

}

6.创建测试文件并改修权限为766,增加读写权限

$ touch file_rw.txt

$ chmod 643 file_rw.txt

$ ll file_rw.txt

-rw-r---wx 1 elf forlinx 0 8月 23 15:56 file_rw.txt*

7.测试结果

$ ./access_test

flie name:file_rw.txt

File exists: OK

Read permission: OK

Write permission: OK

Execution permission: NO

可以看到文件的执行结果,打印出了测试文件名为file_rw.txt,测试文件存在且有读写权限,并没有执行权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1030237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cursor操作效率提升:从手动到自动的进阶技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 设计一个自动化工具&#xff0c;用于优化Cursor操作流程。功能包括&#xff1a;1. 录制和回放Cursor操作序列&#xff1b;2. 提供快捷键绑定常见Cursor操作&#xff1b;3. 分析Curs…

EmotiVoice能否生成带有口音特色的角色语音?

EmotiVoice能否生成带有口音特色的角色语音&#xff1f; 在游戏NPC用四川话讲冷笑话、虚拟主播以台湾腔撒娇卖萌的今天&#xff0c;用户对语音合成的期待早已超越“能听清”这一基本要求。人们想要的是有性格、有情绪、甚至“带点乡音”的声音角色——那种一开口就能让人脑补出…

压力扫描阀详解:从核心原理到精准选型指南

在现代科研与工业测试领域&#xff0c;压力扫描阀已成为多点压力测量的核心技术设备。它能够同时测量数十甚至上百个点的压力数据&#xff0c;极大地提升了测试效率。从桥梁风洞测试到航空发动机研发&#xff0c;这些精密的设备捕捉着流体压力中最为细微的变化&#xff0c;为产…

1小时打造个性化Flutter面试APP原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速生成一个Flutter面试APP的最小可行产品&#xff0c;包含&#xff1a;1)基础题库展示&#xff1b;2)收藏功能&#xff1b;3)搜索过滤&#xff1b;4)暗黑模式。要求代码结构清晰&…

30分钟快速验证VXLAN方案的4种方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个VXLAB原型工具箱&#xff0c;集成&#xff1a;1) 单机版Mininet快速部署 2) 预配置的Vagrant环境 3) Ansible Playbook生成器 4) 拓扑验证检查工具。要求所有功能可通过Web…

5个实际场景下eval的替代方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个多功能演示页面&#xff0c;包含5种eval替代方案的实际应用&#xff1a;1. JSON解析场景 2. 动态函数生成 3. 模板字符串渲染 4. 配置参数解析 5. 规则引擎实现。每个案例需…

2025 年 12 月热处理加工厂家权威推荐榜:温合金/CQI-9/镍基合金/真空淬火等专业工艺,匠心淬炼与精密控温典范之选 - 品牌企业推荐师(官方)

2025 年 12 月热处理加工厂家权威推荐榜:温合金/CQI-9/镍基合金/真空淬火等专业工艺,匠心淬炼与精密控温典范之选 在现代制造业的精密链条中,热处理加工扮演着赋予材料“灵魂”的关键角色。无论是航空航天领域对温合…

《60天AI学习计划启动 | Day 40: 前端 AI SDK 抽象(aiClient + hooks)》

Day 40:前端 AI SDK 抽象(aiClient + hooks) 学习目标抽象 一套通用的 aiClient 接口(不用关心具体后端实现细节) 封装 常用 hooks:useChat(非流式)、useStreamingChat(流式) 为后面 在任何项目中快速接 AI …

AI对比:传统刷题与智能生成Flutter面试准备

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个对比展示应用&#xff0c;左侧显示传统方式(静态题库)&#xff0c;右侧展示AI生成方式。实现功能&#xff1a;1)相同题目两种解答方式对比&#xff1b;2)学习时间统计对比&…

Spring新手必看:5步搞定Bean初始化失败的简单教程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向新手的SpringBoot错误指导应用&#xff1a;1. 用通俗语言解释Bean初始化原理 2. 分步演示典型错误场景 3. 提供可视化修复向导 4. 包含点击修复自动修正功能 5. 内置简…

AI如何自动清理Windows系统垃圾文件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于AI的Windows系统清理工具&#xff0c;能够自动扫描系统垃圾文件&#xff08;如临时文件、缓存、日志等&#xff09;&#xff0c;使用机器学习模型分析文件重要性&#…

固件升级时fd一直增加,升级十几次后crash

固件升级流程,升级软件向app进程发送升级指令,在app中使用system(“./app.sh upgrade start”)执行脚本,启动upgrade进行升级包接收,同时关闭app进程;但发现升级完成后fd增加,app进程打开的fd存在两份; 分析原因…

2025长沙美甲美睫培训学校TOP5权威推荐:速成班费用与优 - myqiye

当下美业市场蓬勃发展,据湖南省美容美发化妆品行业协会数据,2024年省内美甲美睫师岗位缺口超2万个,速成培训班需求激增,但行业乱象频发:超60%学员遭遇隐形消费,35%机构课程与市场潮流脱节,28%零基础学员因大班教…

5分钟用MySQL存储过程搭建业务逻辑原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个快速原型工具&#xff0c;允许用户&#xff1a;1. 通过自然语言描述业务逻辑&#xff1b;2. 自动生成对应的MySQL存储过程框架&#xff1b;3. 提供测试数据生成功能&#x…

基于CentOS 9的快速开发环境搭建指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个自动化脚本&#xff0c;用于在CentOS 9上快速配置Python和Node.js开发环境。包含常用开发工具安装、虚拟环境配置和示例项目模板。支持一键安装和配置&#xff0c;自动检测…

MySQL 中 COUNT (*) 与 COUNT (col) 区别

MySQL 中 COUNT (*) 与 COUNT (col) 区别一、功能本质:计数范围的 “天壤之别”COUNT(*)与COUNT(col)的核心差异,在于是否排除 NULL 值,这直接决定了计数结果的不同,也是后续性能差异的根源。1. COUNT (*):“不挑…

AI如何帮你快速掌握Java基础知识?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Java基础学习助手应用&#xff0c;包含以下功能&#xff1a;1) 交互式Java语法解释器&#xff0c;输入代码片段自动解析语法结构&#xff1b;2) 常见编程错误自动检测与修正…

CH585 CH584 CH592 RF PHY/Basic 2.4G 包格式

射频(Radio Frequency ,RF):以下是RF物理层信号的主要构成部分:RF使用2.4 GHz的ISM(工业、科学和医疗)频段。在2.4 GHz频段中,RF占用了40个频道,每个频道有2 MHz的带宽。 RF信号的结构通常由RF包(RF Packet)…

Fiddler抓包神器:AI如何帮你自动分析网络请求

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于Fiddler的AI辅助分析工具&#xff0c;能够&#xff1a;1. 自动识别和分类常见的API请求模式 2. 根据历史请求智能生成Mock响应数据 3. 检测异常请求和潜在安全问题 4. …

CentOS 9在企业级Web服务中的实战部署

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个在CentOS 9上部署高可用Web服务的自动化脚本。包含Nginx配置模板、MySQL优化参数和负载均衡设置。脚本应支持一键部署&#xff0c;自动检测系统资源并优化配置。使用Bash编…