当前位置: 首页 > news >正文

linux C/C++文件路径操作

标题1、 access函数查找文件夹是否存在/文件是否有某权限

头文件:
在windows环境下头文件为:
#include <io.h>
在linux环境下头文件为:
#include <unistd.h>
函数原型:
int access(const char* _Filename, int _AccessMode)
功能及返回值:
该函数功能为确定文件或文件夹的访问权限,如果指定的访问权限有效,则函数返回0,否则返回-1。
参数说明:
_Filename可以是文件路径,也可以是文件夹路径,可以使用绝对路径或相对路径。
_AccessMode表示要验证的文件访问权限,有可读、可写、可执行以及是否存在四种权限, 可以使用 | (位或)来同时验证多个权限,如F_OK|X_OK
_AccessMode 含义
F_OK 判断是否存在
X_OK 文件是否可执行
W_OK 文件是否可写
R_OK 文件是否可读
备注:
当Filename表示文件夹路径时仅能查询该路径是否存在,即_AccessMode参数应为F_OK。此外Windows中还可以使用_access函数,使用方法上没有区别。

标题2 mkdir函数创建文件夹

头文件:
windows环境下头文件为:
#include <direct.h>
Linux环境下头文件为:
#include <sys/stat.h>
函数原型:
windows环境下:
int mkdir(const char *_Path)
Linux环境下:
int mkdir(const char *pathname, mode_t mode)
功能及返回值:
该函数功能为建立一个新的目录,创建成功则返回0,否则返回-1。
参数说明:
_Path 新建文件夹路径,可使用绝对路径,可也用相对路径。
Linux环境下:
*pathname 同样为文件夹路径。
mode 为不同的权限。
mode 含义
S_IRWXU 00700权限,代表该文件所有者拥有读,写和执行操作的权限
S_IRUSR(S_IREAD) 00400权限,代表该文件所有者拥有可读的权限
S_IWUSR(S_IWRITE) 00200权限,代表该文件所有者拥有可写的权限
S_IXUSR(S_IEXEC) 00100权限,代表该文件所有者拥有执行的权限
S_IRWXG 00070权限,代表该文件用户组拥有读,写和执行操作权限
S_IRGRP 00040权限,代表该文件用户组拥有可读的权限
S_IWGRP 00020权限,代表该文件用户组拥有可写的权限
S_IXGRP 00010权限,代表该文件用户组拥有执行的权限
S_IRWXO 00007权限,代表其他用户拥有读,写和执行操作的权限
S_IROTH 00004权限,代表其他用户拥有可读的权限
S_IWOTH 00002权限,代表其他用户拥有可写的权限
S_IXOTH 00001权限,代表其他用户拥有执行的权限
参数可以使用位或的方式叠加,如S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH,或者直接使用数字作为参数,如0777。
备注:
无论是windows还是Linux创建文件夹时,一定要注意文件夹路径上一层之前的路径全部存在!如在C盘下lww文件夹新建一个mytest文件夹,一定要保证”C:\lww”这个路径是存在的!此外Linux下还要注意,使用mkdir创建的文件夹在查看其权限时,发现与程序中可能不同,这是由于默认权限的掩码设置问题,详情请参见https://blog.csdn.net/yangzhengquan19/article/details/83055686,简单来说,在执行mkdir之前,最好加上umask(0),重新设置默认掩码即可创建正确的文件夹权限。 此外Windows中还可以使用_mkdir函数,使用方法上没有区别。

标题3 rmdir函数删除文件夹

头文件:
windows环境下头文件:
#include <direct.h>
linux环境下头文件:
#include <dirent.h>
函数原型:
*int rmdir(const char _Path)
功能及返回值:
函数功能是删除参数指定的文件夹,成功返回0,否则返回-1。
参数说明:
要删除的文件夹路径,可使用绝对路径,可也用相对路径。
备注:
在windows环境下也可使用函数_rmdir函数,使用方法没有区别。
————————————————
版权声明:本文为CSDN博主「TIO·PLATO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/NCEPUautomation/article/details/108304619

相关文章:

linux C/C++文件路径操作

标题1、 access函数查找文件夹是否存在/文件是否有某权限 头文件&#xff1a; 在windows环境下头文件为&#xff1a; #include <io.h> 在linux环境下头文件为&#xff1a; #include <unistd.h> 函数原型&#xff1a; int access(const char* _Filename, int _Acce…...

Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频(C#)

Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频Baumer工业相机Baumer工业相机SDK技术背景代码分析第一步&#xff1a;先引用OpenCV库第二步&#xff1a;引用图像文件夹生成视频工业相机图像通过OpenCV转为视频的优点工业相机图像转为视频的行业应用​…...

Redis常用命令以及如何在Java中操作Redis

前言Redis是一个基于内存的key-value结构数据库&#xff0c;是互联网技术领域使用最为广泛的存储中间件。Redis基于内存存储&#xff0c;读写性能高&#xff0c;适合存储热点数据&#xff08;热点商品、资讯、新闻&#xff09;。Redis是一个开源的内存中的数据结构存储系统&…...

ASEMI代理AD7980BRMZRL7原装ADI(亚德诺)车规级AD7980BRMZRL7

编辑&#xff1a;ll ASEMI代理AD7980BRMZRL7原装ADI&#xff08;亚德诺&#xff09;车规级AD7980BRMZRL7 型号&#xff1a;AD7980BRMZRL7 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;MSOP-10 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 AD7980BRMZRL7 汽车…...

leetcode141:环形链表

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…...

lattice diamond软件使用

1.diamond软件破解&#xff1a; lisence坚果云下载&#xff1b;或者这个博主操作环境变量设置&#xff1a; 2. 调用IP 有两种方式&#xff0c;依据芯片或者软件版本改变。 传统的IPexpress&#xff0c;每个IP单独例化。 新出的Clarity&#xff0c;多个IP在同一个顶层内调用…...

scala泛型

目录 类型参数 泛型函数&#xff1a; 协变&#xff0c;逆变&#xff0c;不变 泛型上下限&#xff1a; 上下文限定&#xff1a; 泛型是一种类型参数&#xff0c;该类型参数可以用在类、接口和方法中&#xff0c;分别被称为泛型类、泛型接口、泛型方法 类型参数 调用时不指定…...

程序员与ChatGPT的日常问答

程序员与ChatGPT的日常问答GPT3.5与GPT4.0能力对比技术问题工具问题编解码问题其他问题本文记录下调教ChatGPT的日常。 GPT3.5与GPT4.0能力对比 Q&#xff1a;采用同一个问题提问&#xff0c;对比下GPT3.5和GPT4.0的能力区别&#xff0c;比如&#xff1a;帮我列一个小白入门音频…...

如何创建高效的Prompt和ChatGPT等大语言模型AI对话

大语言模型&#xff0c;如OpenAI的GPT-4&#xff0c;是一种基于深度学习技术的自然语言处理工具&#xff0c;它可以理解自然语言并为用户提供有价值的回答。然而&#xff0c;要从大语言模型中获得高质量的回答&#xff0c;你需要学会如何高效地提问。本文将从原理出发&#xff…...

043:cesium加载Bing地图(多种形式)

第043个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载加载Bing地图。这里显示4种形式的地图,分别为:AERIAL、ROAD、CANVAS_DARK、AERIAL_WITH_LABELS。参考后面的API,还有其他几种形式。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章…...

vscode代码片段生成

在刚学习vue的时候&#xff0c;有些代码片段是经常写的&#xff0c;在vscode中写一个代码片段可以帮助快速生成。 生成步骤&#xff1a; VSCode中的代码片段有固定的格式&#xff0c;所以我们一般会借助于一个在线工具来完成。 具体的步骤如下: 第一步&#xff0c;复制自己需…...

数据规整:聚合、合并和重塑

目录一、层次化索引重排与分级排序根据级别汇总统计二、合并数据集数据库风格的DataFrame合并索引上的合并轴向连接合并重叠数据三、重塑和轴向旋转重塑层次化索引将“长格式”旋转为“宽格式”将“宽格式”旋转为“长格式”一、层次化索引 层次化索引&#xff08;hierarchica…...

开心档之C++ 信号处理

C 信号处理 目录 C 信号处理 signal() 函数 实例 raise() 函数 实例 信号是由操作系统传给进程的中断&#xff0c;会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上&#xff0c;可以通过按 CtrlC 产生中断。 有些信号不能被程序捕获&#xff0c;但是下表…...

ChatGPT惨遭围剿?多国封杀、近万人联名抵制……

最近&#xff0c;全世界燃起一股围剿ChatGPT的势头。由马斯克、图灵奖得主Bengio等千人联名的“暂停高级AI研发”的公开信&#xff0c;目前签名数量已上升至9000多人。除了业内大佬&#xff0c;欧盟各国和白宫也纷纷出手。 最早“动手”的是意大利&#xff0c;直接在全国上下封…...

SpringBoot监听器

1.寻找spring.factories配置文件对应的监听器&#xff0c;主要要写监听器的全路径名&#xff0c;不然反射会报错 SpringBoot底层是如何读取META-INF/spring.factories的配置的&#xff1f; 1.遍历所有jar下的META-INF/spring.factories配置文件 2.读取配置文件下的所有属性&a…...

【网络安全】SQL注入--报错注入

报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入&#xff1a;利用sql语句的不规范&#xff0c;获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…...

APP隐私整改建议

1、违规收集个人信息 情形一&#xff1a; APP首次启动时&#xff0c;未有以弹窗形式明示个人信息保护政策。 改进建议&#xff1a; APP首次启动时&#xff0c;以弹窗等形式向用户明示个人信息保护政策。 情形二&#xff1a; 个人信息保护政策未有说明个人信息处理的目的、方…...

MySQL数据模型 and 通用语法 and 分类

关系型数据库 关系型数据库是由多张能互相连接的二维表组成的数据库。 优点&#xff1a; 1.都是使用表结构&#xff0c;格式一致&#xff0c;易于维护。 2.使用通用的SQL语言操作&#xff0c;使用方便&#xff0c;可用于复杂查询。 3.数据存储在磁盘中&#xff0c;安全。 …...

一款识别域名是否使用cdn的工具cdnChecker

cdnChecker 一款识别域名是否使用cdn的工具 https://github.com/alwaystest18/cdnChecker 背景 红队打点时经常会有收集子域名然后转成ip进而扩展ip段进行脆弱点寻找的需求&#xff0c;如果域名使用cdn&#xff0c;会导致收集错误的ip段&#xff0c;因此我们需要排除cdn来收…...

Ant Design Vue的汉化

Ant Design Vue的汉化 1. 引入依赖 import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; // 汉化 export default {data () {zhCN,} }2. 标签包裹需要汉化的组件 <a-config-provider :locale"zhCN"><a-table :row-selection"ro…...

音频编辑新革命:Audacity 4 终极免费解决方案,让专业音频处理触手可及

音频编辑新革命&#xff1a;Audacity 4 终极免费解决方案&#xff0c;让专业音频处理触手可及 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为昂贵的音频编辑软件发愁吗&#xff1f;或者对复杂的音频处理工…...

蓝桥杯c++新手如何起步?快马生成带详解的入门代码示例

作为一名刚接触蓝桥杯C竞赛的新手&#xff0c;最头疼的往往不是算法本身&#xff0c;而是连基础语法都还没摸透就要面对复杂题目。最近在准备比赛时&#xff0c;我发现用传统方式学习效率很低——手动敲完代码后&#xff0c;经常因为不熟悉语法细节卡壳&#xff0c;调试半天也找…...

Charticulator:重构数据可视化创作范式的技术革命

Charticulator&#xff1a;重构数据可视化创作范式的技术革命 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 数据可视化正面临前所未有的创作困境——当业务需求…...

微信聊天记录完全掌控指南:如何永久保存并深度分析你的数字记忆

微信聊天记录完全掌控指南&#xff1a;如何永久保存并深度分析你的数字记忆 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…...

挖到宝!PFC2D 流固耦合常用案例合集,科研人速进

该模型是“PFC2D流固耦合常用案例合集”&#xff1a; 其中包括水力压裂、达西渗流等多个案例。 有需要学习和交流的伙伴可按需选取。 干货满满&#xff0c;是运用pfc5.0做流固耦合必不可少的科研学习资料性价比绝对超高 内容可编辑&#xff0c;觉得运行通畅 代码真实有效。最近…...

用PyTorch复现掌纹识别顶会论文:从VGG16到ResNet152的模型蒸馏踩坑实录

从VGG16到ResNet152&#xff1a;掌纹识别模型蒸馏实战中的关键挑战与解决方案 掌纹识别作为生物特征识别领域的重要分支&#xff0c;近年来在深度学习技术的推动下取得了显著进展。然而&#xff0c;当我们将论文中的理论模型转化为实际可运行的代码时&#xff0c;往往会遇到一系…...

当 AI 开始制造 AI:递归自我提升时代的人类工程师生存指南

1. 核心命题:人类瓶颈的消失与算力主导的新纪元 1.1 递归自我提升的拐点降临 1.1.1 从"人类设计"到"自我迭代"的范式转移 人工智能发展正经历一场深刻的范式革命,其核心特征是从"人类工程师主导设计"向"AI系统自主迭代进化"的根本…...

OpenClaw 的检索增强中,向量数据库的索引类型(HNSW、IVF)如何选择?

在讨论时序推理时&#xff0c;OpenClaw 对时间关系的建模方式&#xff0c;其实可以从一个很直观的角度去理解——它并不只是简单地给事件贴上时间标签&#xff0c;而是尝试去捕捉事件之间那种动态的、有时甚至是隐含的依赖关系。 想象一下日常生活中整理相册的过程。如果只是按…...

DIY USB3.0集线器翻车实录:GL3523芯片的USB3.0死活不认,问题到底出在哪儿?

GL3523芯片USB3.0集线器设计避坑指南&#xff1a;从原理图到PCB的完整解决方案 作为一名硬件爱好者&#xff0c;DIY USB集线器看似简单&#xff0c;实则暗藏玄机。特别是当涉及到USB3.0高速信号时&#xff0c;一个小小的设计疏忽就可能导致整个项目"翻车"。本文将基于…...

芒格思想阅读建议

&#x1f4da; 来源&#xff1a;《穷查理宝典》演讲精华**整理&#xff1a;小橙子 &#x1f34a; | 日期&#xff1a;2026-03-27&#x1f31f; 必读三篇&#xff08;核心精华&#xff09; 芒格思想的精华集中在三篇演讲&#xff0c;按以下顺序阅读效果最佳&#xff1a; 阅读顺序…...