文件属性与目录
⚫ Linux 系统的文件类型;
普通文件:存储数据,如文本文件、可执行文件等。
目录:用于组织文件和其他目录的特殊文件。
符号链接:指向另一个文件或目录的引用,类似于 Windows 中的快捷方式。
硬链接:指向文件的相同 inode 的链接,多个文件名共享同一数据。
块设备文件:用于与块设备(如硬盘)进行交互的特殊文件。
字符设备文件:用于与字符设备(如串口设备)进行交互的特殊文件。
套接字:用于进程间通信的特殊文件。
’ - ':普通文件
’ d ':目录文件
’ c ':字符设备文件
’ b ':块设备文件
’ l ':符号链接文件
’ s ':套接字文件
’ p ':管道文件
⚫ stat 系统调用;
int stat(const char *pathname, struct stat *buf);
buf:struct stat 类型指针,用于指向一个 struct stat 结构体变量
struct stat
{dev_t st_dev; /* 文件所在设备的 ID */ino_t st_ino; /* 文件对应 inode 节点编号 */mode_t st_mode; /* 文件对应的模式 */nlink_t st_nlink; /* 文件的链接数 */uid_t st_uid; /* 文件所有者的用户 ID */gid_t st_gid; /* 文件所有者的组 ID */dev_t st_rdev; /* 设备号(指针对设备文件) */off_t st_size; /* 文件大小(以字节为单位) */blksize_t st_blksize; /* 文件内容存储的块大小 */blkcnt_t st_blocks; /* 文件内容所占块数 */struct timespec st_atim; /* 文件最后被访问的时间 */struct timespec st_mtim; /* 文件内容最后被修改的时间 */struct timespec st_ctim; /* 文件状态最后被改变的时间 */
};
⚫ 符号链接与硬链接;
硬链接(Hard Link)
定义:硬链接是指向相同 inode 的多个目录项。多个硬链接可以指向同一个文件数据,但它们之间没有区别,都是该文件的直接引用。
符号链接(Symbolic Link / Soft Link)
定义:符号链接是一个特殊类型的文件,它包含一个指向另一个文件的路径名。符号链接相当于一个快捷方式,可以指向任意文件或目录。
⚫ 目录;

删除文件
unlink()系统调用
实质上是移除 pathname 参数指定的文件路径对应的目录项(从其父级目录中移除该目录项),并将文件的 inode 链接计数将 1,如果该文件还有其它硬链接,则任可通过其它链接访问该文件的数据;只有当链接计数变为 0 时,该文件的内容才可被删除。另一个条件也会阻止删除文件的内容—只要有进程打开了该文件,其内容也不能被删除。关闭一个文件时,内核会检查打开该文件的进程个数,如果这个计数达到 0,内核再去检查其链接计数,如果链接计数也是 0,那么就删除该文件对应的内容(也就是文件对应的 inode 以及数据块被回收,如果一个文件存在多个硬链接,删除其中任何一个硬链接,其inode 和数据块并没有被回收,还可通过其它硬链接访问文件的数据)。
使用 remove 函数删除文件
与 unlink()、rmdir()一样,remove()不对软链接进行解引用操作,若 pathname 参数指定的是一个软链接文件,则 remove()会删除链接文件本身、而非所指向的文件。
文件重命名
调用 rename()会将现有的一个路径名 oldpath 重命名为 newpath 参数所指定的路径名。rename()调用仅操作目录条目,而不移动文件数据(不改变文件 inode 编号、不移动文件数据块中存储的内容),重命名既不影响指向该文件的其它硬链接,也不影响已经打开该文件的进程(譬如,在重命名之前该文件已被其它进程打开了,而且还未被关闭)。
相关文章:
文件属性与目录
⚫ Linux 系统的文件类型; 普通文件:存储数据,如文本文件、可执行文件等。 目录:用于组织文件和其他目录的特殊文件。 符号链接:指向另一个文件或目录的引用,类似于 Windows 中的快捷方式。 硬链接&#x…...
5G 基站SCTP
如何实现SCTP多归属链路对接 文章目录 前言一、SCTP是什么?二、lksctp三.sctp初始化四.绑定本端两个IP 五.与对端建链六.设置主要路径七.设置是否启用心跳八.关于防火墙的配置 总结 …...
MFC的SendMessage与PostMessage的区别
一、SendMessage 同步操作: SendMessage 是一个同步函数,它会将消息发送到指定的窗口,并等待该窗口的消息处理过程完成,然后返回。这意味着它会阻塞当前线程,直到消息处理完成。 直接调用: SendMessage 会…...
学习虚幻C++开发日志——基础案例(持续更新中)
官方文档:虚幻引擎C编程教程 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community 1.物体上下起伏并旋转 1.1第一种写法 创建一个继承于Actor的类,并为新的Actor命名为FloatingActor,然后点击Create Class 重新…...
【CUDA代码实践03】m维网格n维线程块对二维矩阵的索引
文章目录 一、数据存储方式二、二维网格二维线程块三、二维网格一维线程块四、一维网格一维线程块 为了方便下次找到文章,也方便联系我给大家提供帮助,欢迎大家点赞👍、收藏📂和关注🔔!一起讨论技术问题&am…...
VSCode Qt6安装OpenSSL
报错 Could NOT find OpenSSL, try to set the path to OpenSSL root folder in thesystem variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARYOPENSSL_INCLUDE_DIR SSL Crypto) (Required is at least version "3.0")问题确认 这个错误显示在Windows环境…...
JAVA学习-练习试用Java实现“定义一个用户类,包含用户名和密码”
问题: 定义一个用户类(User),包含用户名(username)和密码(password)属性,提供静态方法验证密码是否有效(长度至少为6),并提供getter和…...
大数据之VIP(Virtual IP,虚拟IP)负载均衡
VIP(Virtual IP,虚拟IP)负载均衡是一种在计算机网络中常用的技术,用于将网络请求流量均匀地分散到多个服务器上,以提高系统的可扩展性、可靠性和性能。以下是对VIP负载均衡的详细解释: 一、VIP负载均衡的基…...
鸿蒙网络编程系列38-Web组件文件下载示例
1. web组件文件下载能力简介 在本系列的第22篇文章,介绍了web组件的文件上传能力,同样的,web组件也具备文件下载能力,鸿蒙API提供了处理web组件下载事件的委托类型WebDownloadDelegate,该类型包括四个下载事件的回调接…...
Cisco Packet Tracer 8.0 路由器的基本配置和Telnet设置
文章目录 构建拓扑图配置IP地址配置路由器命令说明测试效果 构建拓扑图 1,添加2811路由器。 2,添加pc0。 3,使用交叉线连接路由器和pc(注意线路端口)。 4,使用配置线连接路由器和pc(注意线路…...
Flink系列之:学习理解通过状态快照实现容错
Flink系列之:学习理解通过状态快照实现容错 状态后端检查点存储状态快照状态快照如何工作?确保精确一次(exactly once)端到端精确一次 状态后端 由 Flink 管理的 keyed state 是一种分片的键/值存储,每个 keyed state…...
Linux 读者写者模型
1.背景概念 在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。这样就衍生出了读者写者模型,在这个模型中,有两类线程:读者和写者。读…...
JavaScript 的 axios 实现文件下载功能
用 JavaScript 的 axios 实现文件下载功能,咱们要分几个步骤来搞定它!最主要的部分是处理 二进制数据,可以生成一个进度检测,然后把它保存为文件。 文件名的获取二进制数据获取创建下载链接 const axios require(axios);const g…...
合合信息亮相2024中国模式识别与计算机视觉大会,用AI构建图像内容安全防线
近日,第七届中国模式识别与计算机视觉大会(简称“PRCV 2024”)在乌鲁木齐举办。大会由中国自动化学会(CAA)、中国图象图形学学会(CSIG)、中国人工智能学会(CAAI)和中国计…...
深度学习:匿名函数lambda函数的使用与numerical_gradient函数
背景: 假设我们有一个简单的线性回归模型,其损失函数是均方误差(MSE): class LinearModel:def __init__(self):self.W np.random.randn(1, 1) # 初始化权重def predict(self, x):return np.dot(x, self.W) # 线性预…...
PHP数据类型
几种常用的数据类型: String(字符串) Integer(整型) Float(浮点型) Boolean(布尔型) NULL(空值) Array(数组) Obje…...
2FA-双因素认证
双因素认证(2FA,Two-Factor Authentication)是一种提高安全性的方法,要求用户在登录或进行某些敏感操作时提供两种不同类型的身份验证信息。这种方法通过引入第二层验证,增加了账户被未经授权访问的难度。 项目结构 …...
解决 Python 中的 TypeError 错误
解决 Python 中的 TypeError 错误 在 Python 编程中,TypeError 是一种常见的错误,通常发生在尝试对不兼容的类型进行操作时。了解这个错误的原因以及如何有效解决它,对于提高代码的可靠性和可读性至关重要。本文将详细讨论 TypeError 的成因…...
快速学会C 语言基本概念和语法结构
😀前言 本篇博文是关于C 语言的基本概念和语法结构,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力&a…...
Python酷库之旅-第三方库Pandas(172)
目录 一、用法精讲 791、pandas.UInt8Dtype类 791-1、语法 791-2、参数 791-3、功能 791-4、返回值 791-5、说明 791-6、用法 791-6-1、数据准备 791-6-2、代码示例 791-6-3、结果输出 792、pandas.UInt16Dtype类 792-1、语法 792-2、参数 792-3、功能 792-4、…...
基于MCP协议集成AI求职助手:自动化简历优化与面试准备
1. 项目概述:将AI求职助手集成到你的工作流 如果你正在用Claude Desktop或者Cursor这类AI助手,并且恰好又在找工作或者准备职业跃迁,那你可能已经体会过那种“割裂感”——你需要手动把简历内容、职位描述、面试问题来回复制粘贴到聊天窗口&…...
告别大影像卡顿:手把手教你用GISBox做影像切片
从城市规划的精准布局,到自然资源的合理开发利用,再到应急救援的高效指挥,GIS影像都扮演着至关重要的角色。而影像切片技术,作为GIS影像处理和应用的关键环节,更是为我们解决了诸多实际难题,让GIS影像的应用…...
编程统计产品售后处理时长,客户满意度数据,优化售后流程,降低客户投诉率,提升企业职场服务口碑。
一、实际应用场景描述在制造、家电、消费电子、SaaS 等行业中,售后服务是客户体验的关键环节,典型流程包括:- 客户提交售后申请(报修、退换货、咨询)- 客服受理 → 技术/维修派单 → 上门/处理 → 完成 → 客户评价- 系…...
3个技巧快速掌握加密压缩包密码找回:ArchivePasswordTestTool新手指南
3个技巧快速掌握加密压缩包密码找回:ArchivePasswordTestTool新手指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾…...
VSCode + GitLab 真香组合:告别命令行恐惧,可视化搞定团队代码提交与合并
VSCode GitLab 可视化协作指南:零命令行完成高效团队开发 对于视觉型开发者而言,命令行操作常常是学习Git工作流的最大障碍。当团队采用GitLab进行协作时,传统教程中频繁出现的git checkout、git rebase等命令更容易让人望而生畏。事实上&a…...
手机跑多模态也能快到飞起!面壁MiniCPM-V 4.6开源
大模型技术正快步从云端机房走入普通人的智能手机,让移动设备直接处理复杂的图文与视频任务成为现实。面壁智能最新开源的一款多模态模型,以极低的算力成本,超低的首Token延迟,成功打通当前三大主流手机操作系统。MiniCPM-V 4.6专…...
意法半导体权力交接:从博佐蒂到谢里的战略延续与挑战
1. 从Bozotti到Chery:一场静水深流的权力交接在半导体这个以技术迭代和资本狂热著称的行业里,权力更迭往往伴随着戏剧性的股价波动、战略急转弯或是人事地震。然而,2018年5月31日,当意法半导体(STMicroelectronics NV&…...
AgentStack:构建生产级AI智能体应用的一站式平台
1. 项目概述:AgentStack,一个为AI智能体打造的“操作系统”如果你正在开发AI应用,或者想让你的产品具备AI能力,那你一定遇到过这样的困境:大模型能力虽强,但让它稳定、可控、安全地接入你的业务系统&#x…...
WinForm弹窗进阶:手把手教你封装一个通用的MessageBoxHelper工具类(.NET Framework/C#)
WinForm弹窗进阶:打造高复用性的MessageBoxHelper工具类 在WinForm开发中,MessageBox.Show()就像空气一样无处不在——从简单的操作确认到复杂的错误处理,这个基础组件承担了太多交互职责。但当你第20次写下MessageBox.Show("操作成功&q…...
五层智能引擎架构:illustrator-scripts如何实现设计自动化效能革命
五层智能引擎架构:illustrator-scripts如何实现设计自动化效能革命 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在数字化设计领域,设计师平均花费31.2%的…...
