
Linux
文章平均质量分 90
一起揭开Linux的神秘面纱,从基础概念到高级技巧,从桌面环境到服务器配置,从开源文化到社区贡献,我们致力于提供全面、深入、实用的Linux知识。
koi li
用博客做笔记,记录我的想法。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
json知识点、如何使用jsoncpp实现序列化和反序列化?
序列化指的是将数据结构或对象转换为一种格式,以便在网络上传输或存储到文件中。反序列化指的是将序列化后的数据重新转换为原来的数据结构或对象。原创 2025-04-27 18:37:08 · 912 阅读 · 0 评论 -
为什么Makefile中的clean需要.PHONY
目标通常没有依赖文件,Make会认为该目标已是最新状态,从而跳过命令执行。文件,也会强制删除目标文件。会检查该文件的时间戳。声明后,无论文件是否存在,在Makefile中,原创 2025-04-21 19:15:06 · 309 阅读 · 0 评论 -
Linux | 探索 Linux 信号机制:信号的产生和自定义捕捉
Linux 提供了signal和sigaction系统调用,允许开发者自定义信号的处理函数,即捕捉信号。// 捕捉SIGINT信号sleep(1);return 0;SIGALRM信号通常由alarm()函数产生,用于在设定的时间后通知进程。alarm()函数与SIGALRM信号alarm()函数的作用是设置一个闹钟,指定经过若干秒后系统向进程发送SIGALRM信号。此信号的默认处理行为是终止进程,但我们可以通过自定义信号处理函数来捕捉并处理SIGALRM信号。alarm()参数seconds。原创 2024-09-14 17:19:59 · 1364 阅读 · 1 评论 -
Linux | System V 共享内存:工作原理与使用指南
进程间通信的本质是让不同进程看到同一个资源。System V 共享内存是一种古老的但依然广泛使用的 IPC 机制,它允许多个进程共享同一块物理内存区域(类似C语言动态库的加载)。这种机制的优势在于,进程可以直接读写内存,无需数据在用户空间和内核空间之间的复制,从而大大提高了数据交换的速度。原创 2024-09-02 23:12:35 · 1144 阅读 · 7 评论 -
Linux | 匿名管道和命名管道:进程间通信数据流的桥梁
进程间通信(IPC:Inter Processes Communication)是不同进程之间进行信息交互和状态传递的机制。原创 2024-09-02 22:09:40 · 1683 阅读 · 4 评论 -
Linux | 进程池技术解析:利用无名管道实现并发任务处理(含实现代码)
多任务处理是提高系统性能和响应速度的关键。进程池技术作为一种有效的资源管理和任务调度策略,已经成为并发编程中不可或缺的一部分。本文探讨进程池的工作原理,以及如何通过使用无名管道来实现高效的并发任务处理。原创 2024-08-31 14:00:54 · 880 阅读 · 9 评论 -
Linux | 编译和使用自定义动静态库的全面解析
在Linux系统编程中,库(Library)是程序开发中不可或缺的组件,它们封装了数据和函数供用户程序调用。本文将深入探讨Linux系统中的两种主要库类型:静态库(.a)和动态库(.so),并比较它们在编译、链接和运行时的不同特点和使用方式。原创 2024-08-25 21:37:24 · 875 阅读 · 3 评论 -
Linux | 文件系统进阶:Inode与软硬链接艺术剖析
在Linux操作系统中,文件系统是数据存储和组织的核心概念。它不仅提供了数据的持久存储,还定义了数据的访问方式。本文将带你深入了解Linux文件系统的工作原理和特点。原创 2024-08-23 20:19:55 · 1008 阅读 · 2 评论 -
Linux | 文件描述符fd详解及重定向技术的应用
文件描述符,一个看似简单的整数,实际上是Linux系统中用于标识和访问文件、设备和其他输入输出资源的关键。每个进程在启动时,都会继承一组标准的文件描述符,它们是:标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。这些描述符不仅是进程与外部世界通信的桥梁,更是操作系统抽象硬件细节、实现设备无关性的关键。通过重定向技术,我们可以灵活地改变输出的目的地,无论是将标准输出重定向到文件,还是将错误信息发送到日志系统,甚至是将输入从文件中读取。这种灵活性,正是Linux系统强大功能的一部分。原创 2024-08-23 15:38:53 · 1219 阅读 · 0 评论 -
Linux | 探究C语言文件接口与Linux系统文件接口的区别与联系 | fopen和open的区别与联系
全局性:在任何C程序中,无需打开即可使用。缓冲stdout和stderr通常具有不同的缓冲行为。stdout可能是行缓冲或全缓冲,而stderr通常是无缓冲的。也就是说,stdout可能不会立即输出内容,但stderr是为了快速错误报告而设计的,通常会立即输出。重定向:可以通过简单的重定向操作改变它们的输出目标,例如在 shell 中使用或2>将输出重定向到文件。可以通过fileno函数获取FILE*指针对应的文件描述符,例如将返回0。在多线程程序中,stdout和stderr。原创 2024-08-23 14:30:58 · 1105 阅读 · 9 评论 -
Linux | 深入探究Linux进程控制:从fork函数到进程等待再到进程替换
避免僵尸进程:当子进程完成其任务并退出时,它会转变为僵尸进程,等待父进程回收其资源。如果父进程不执行等待操作,子进程的进程描述符和部分资源不会被释放,导致系统资源浪费。资源回收:父进程通过等待子进程,可以回收子进程使用的资源,包括内存、文件描述符等,确保系统资源的有效利用。获取子进程状态:父进程可以通过等待子进程来获取其退出状态,了解子进程是否成功完成任务,以及任务执行的结果。异常处理:如果子进程因为错误或异常退出,父进程可以通过等待子进程来获取这些信息,并进行相应的异常处理。同步执行。原创 2024-08-19 18:10:12 · 1902 阅读 · 6 评论 -
Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量
在现代计算机系统中,Linux操作系统以其开源、灵活和强大的特性,成为服务器和嵌入式系统的首选。了解Linux的进程管理机制对于系统管理员和开发者来说至关重要。原创 2024-08-18 15:49:16 · 1153 阅读 · 7 评论 -
Linux | Linux开发工具链全攻略:yum、vim、gcc/g++、GDB、Makefile与git版本控制
Linux开发环境的强大之处在于其丰富的工具链和灵活的自动化能力。从YUM到Vim,从gcc到GDB,再到Makefile和Git,每一个工具都是构建高效开发流程的基石。希望本文能帮助读者快速掌握Linux开发环境,开启高效编程之旅。原创 2024-08-14 22:37:24 · 1342 阅读 · 4 评论 -
Linux | Ubuntu 常用操作命令大全(2024年更新)
Linux系统的文件结构是层次化的,每个目录都有其特定的用途。命令行是与Linux交互的主要方式。原创 2024-07-27 11:31:23 · 2439 阅读 · 0 评论