linux 打印进程树

操作系统实验中,通过读取/proc目录下进程的status信息,利用递归算法在Java中实现打印Linux进程树。核心在于解析pid和ppid,建立进程间的父子关系。
摘要由CSDN通过智能技术生成

操作系统实验

读取linux系统运行下的/proc/.../status的信息,利用java实现linux打印进程树

  1. 利用递归遍历文件的方式来实现打印进程树,问题在于如何寻找每个进程之间的关系
  2. 使用bufferreader()的方法从status中读取pid、ppid、name等信息
  3. 根据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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值