Skip to content

BlueLi66/linux-pstree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Linux pstree (C语言极简版) 🌳

这是一个轻量、高效的 Linux pstree 命令的 C 语言实现。本项目直接读取操作系统底层数据,在终端中打印出直观的进程树状拓扑图。

🚀 快速开始

本项目为纯 C 编写,无需依赖任何第三方库。

# 编译
gcc pstree.c -o pstree

# 运行
./pstree
💻 命令行用法
支持原生 pstree 的几个核心控制参数:

./pstree:默认输出进程树(同级进程按 字母表 顺序排列)。

./pstree -p:在进程名旁显示对应的 (PID)。

./pstree -n:强制同级进程按 PID 数值 从小到大排序。

./pstree -p -n:同时显示 PID 并按 PID 排序。

./pstree -V:查看程序版本信息。

✨ 核心技术实现
直接解析 /proc:不调用高级命令,通过底层文件系统直接提取实时的进程 PPID 和状态。

LCRS 多叉树结构:在内存中使用经典的“左孩子,右兄弟”链表结构,极低内存消耗实现庞大的树状关系映射。

单链表动态排序:实现双指针有序插入算法,根据用户传入的参数实时改变进程树的排序规则。

带状态递归渲染:使用 DFS(深度优先搜索)和层级状态数组,精准打印 └── 和 ├── 树枝连线。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages