
UC
文章平均质量分 91
UNIX系统下C语言编程
apolloyhl
高峰只对攀登它而不是仰望它的人来说才有真正意义。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux 信号机制深度解析:从基础概念到实战应用
信号是 Linux 系统中用于异步通知进程的事件机制,本质是一个整数(信号编号)。它可以由硬件事件(如键盘中断)、系统内核(如内存访问错误)或用户进程(如kill命令)产生,用于:通知进程异步事件(如文件就绪、定时器超时)。强制进程终止或暂停(如SIGKILLSIGSTOP实现进程间通信(轻量级 IPC)。模块关键知识点基础概念信号编号、分类(实时 / 非实时)、生命周期(产生 - 未决 - 递送)。处理方式默认、忽略、捕获(signal函数),信号处理函数的异步执行。僵尸回收SIGCHLD。原创 2025-06-10 22:52:30 · 1577 阅读 · 0 评论 -
深入解析 Linux 进程管理:从概念到实战的全面指南
进程是程序的一次动态执行实例,是操作系统分配资源(CPU 时间、内存等)的基本单位。程序是存储在磁盘上的静态文件(包含代码和数据)。进程是程序加载到内存并由 CPU 执行的动态实体。例如,同一个程序(如文本编辑器)可以同时运行多个进程,每个进程独立占用系统资源。从内核视角看,进程的核心作用是作为资源分配的载体,实现多任务并发执行。功能:用新程序替换当前进程的内存映像(PID 不变,进程 “变身”)。核心函数execl:参数以列表形式传递(execv:参数以数组形式传递(execvp:自动搜索。原创 2025-06-04 23:44:00 · 1322 阅读 · 0 评论 -
文件系统与文件管理:从磁盘到内核的全链路解析
物理层:硬盘通过磁道 / 扇区 / 柱面组织数据,文件系统将物理地址抽象为逻辑块。逻辑层:i 节点管理文件元数据,目录文件维护文件名与 i 节点的映射,数据块存储实际内容。编程层:通过系统调用()和高级接口(mmap/fcntl)操作文件,利用文件锁和缓冲机制优化性能与安全。延伸思考为什么删除符号链接不影响目标文件?(符号链接仅存储路径,删除不影响 i 节点引用计数)如何用strace追踪文件打开失败的原因?(查看open系统调用返回值和错误码)原创 2025-05-29 23:08:39 · 1022 阅读 · 0 评论 -
程序的 “内存舞台”:深入解析虚拟地址空间与内存管理
安全隔离:每个进程拥有独立的用户空间,防止互相干扰(如恶意程序篡改其他进程内存)。内存抽象:程序员无需关心物理内存细节,通过虚拟地址统一编程,降低开发复杂度。内存扩展:利用磁盘交换分区,使程序可用内存远超物理容量(尽管性能下降)。通过理解虚拟地址空间与内存管理机制,开发者能更高效地调试内存问题,合理使用系统资源,写出健壮的程序。内存管理如同舞台调度,只有掌握规则,才能让程序在有限的空间中优雅起舞。原创 2025-05-28 23:26:10 · 1156 阅读 · 0 评论 -
程序开发的 “瑞士军刀”:深入解析库文件的原理与实践
从早期的静态库到动态库,再到动态加载技术,库文件的发展始终围绕 “效率” 与 “灵活性” 展开。理解其原理不仅能帮助开发者正确使用现有库,更能自主构建高效的代码复用体系。无论是开发工具链、操作系统组件,还是复杂的业务系统,库文件都是现代软件开发不可替代的基础设施。相关教程:C++静态库与动态库 | 菜鸟教程t=P4F5C++静态库与动态库 | 菜鸟教程https://www.runoob.com/w3cnote/cpp-static-library-and-dynamic-library.html。原创 2025-05-27 22:44:18 · 1258 阅读 · 0 评论