Linux下的Double Fork
在实现 Linux 多进程 Echo Server 时,我被“两次 fork (Double Fork)”的设计深深惊艳。本文通过拆解父-子-孙三代进程的生命周期,探讨了 Linux 孤儿进程回收机制如何优雅地解决僵尸进程难题。这不仅是一次技术探讨,也是一次对设计哲学的心得感悟。
在实现 Linux 多进程 Echo Server 时,我被“两次 fork (Double Fork)”的设计深深惊艳。本文通过拆解父-子-孙三代进程的生命周期,探讨了 Linux 孤儿进程回收机制如何优雅地解决僵尸进程难题。这不仅是一次技术探讨,也是一次对设计哲学的心得感悟。
总结 PATH、HOME、USER 等常见环境变量的作用,以及如何通过 C 语言 main 函数参数或 getenv 获取系统环境变量。
掌握 Makefile 的依赖关系与方法、伪目标 .PHONY、自动化变量 以及如何利用时间戳规则触发重新编译。
详细讲解预处理、编译、汇编、链接四个阶段,并对比动静态库(.so 与 .a)的优缺点及其对可执行程序的影响。
剖析 Bash 解释器的运行原理,深入探讨 Linux 权限位、粘滞位 (t)、umask 掩码以及目录权限的特殊规则。
解析力扣(LeetCode)热门题目“有效的括号”。本文阐述了如何利用栈(Stack)的后进先出特性实现符号匹配,并详细讨论了边界情况处理(如空字符串、单括号等),强调了在 C 语言中手动管理内存、防止内存泄漏的重要性。