news 2026/3/18 20:42:48

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞凌嵌入式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,测试文件存在且有读写权限,并没有执行权限。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 18:51:27

ast 在 Dify 工作流中解析 JSON 格式数据的深度解析

目录 核心问题&#xff1a;Dify 中的「伪 JSON」陷阱 ast.literal_eval() 的不可替代性 1. 精准解析 Dify 特有格式 2. 安全边界&#xff1a;防御 Dify 中的注入风险 3. 无缝处理 Dify 嵌套结构 Dify 代码节点中的最佳实践 完整安全方案 关键设计说明 为什么不用其他方…

作者头像 李华
网站建设 2026/3/14 23:00:29

J-Flash在汽车电子量产烧录中的实战技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个汽车ECU量产烧录管理系统&#xff0c;集成J-Flash命令行工具。功能要求&#xff1a;1.批量处理100设备并行烧录 2.自动记录每个设备的烧录日志 3.支持SN自动分配和写入 4.烧…

作者头像 李华
网站建设 2026/3/14 19:24:23

传统调试 vs AI诊断:Bean异常解决效率提升500%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 构建一个SpringBoot异常处理效率对比工具&#xff1a;1. 记录手动调试步骤和时间 2. AI自动化诊断流程 3. 并排显示两种方式耗时 4. 生成优化建议报告 5. 支持常见Spring异常场景。…

作者头像 李华
网站建设 2026/3/13 12:25:58

Apache JMeter在电商大促中的实战应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商大促场景的JMeter测试模板&#xff0c;模拟高并发用户登录、商品浏览、下单支付等核心流程。要求支持参数化用户数据、动态关联接口响应、分布式测试部署&#xff0c;并…

作者头像 李华
网站建设 2026/3/12 22:00:18

浅浅问一下,嵌入式端是用protobuf?

浅浅问一下&#xff0c;嵌入式那边是不是都在用 protobuf 啊&#xff1f;听人说性能好、省流量、序列化快&#xff0c;移植过去代码量好像也不大&#xff0c;乍一听真是嵌入式传输协议的“理想型”。但真一上手搞起来&#xff0c;可能就发现事情没那么简单——嵌入式那点内存&a…

作者头像 李华
网站建设 2026/3/13 14:40:12

git操作

一、独立开发项目 1.新项目克隆代码&#xff1a;git clone git地址 2.git add -A 3.git commit -m "提交代码" 4.git push origin master(要提交的分支名称)5.git pull origin master (日常开发拉最新代码)二、协同配合的项目 1.git clone 地址 2.git checkout maste…

作者头像 李华