操作系统实验
读取linux系统运行下的/proc/.../status的信息,利用java实现linux打印进程树
- 利用递归遍历文件的方式来实现打印进程树,问题在于如何寻找每个进程之间的关系
- 使用bufferreader()的方法从status中读取pid、ppid、name等信息
- 根据pid和ppid的关系找到进程之间的关系
代码如下
我的递归方法传入三个形参,分别是路径和深度以及获取的当前进程文件的ppid
IsNumeric用正则表达式的方法确保文件的名字是数字(/proc目录下的数字文件代表进程)
package com.test;
import javax.swing.plaf.nimbus.State;
public class PcbInfo {
//定义并获取数据的方法
private int pid;
private int ppid;
private String name;
private String state;
public PcbInfo(int pid, int ppid, String name,String state) {
this.pid = pid;
this.ppid = ppid;
this.name = name;
this.state=state;
}
public PcbInfo() {
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getPpid() {
return ppi