大学时老师让做作业,让实现pstree的功能,最后通过扫描/proc目录完成,现在贴出来分享一下。 程序源码如下 #include<stdio.h> #include<dirent.h> #include<string.h> typedef struct pro_info { int pid; int ppid; char name[100]; int flag;//标志是否打印 int rec;//计算总父进程个数 }info; //返回所有数字目录 int filter(const struct dirent *dir){ //select number folder int i; int n = strlen(dir->d_name); for(i = 0;i<n;i++) { if(!isdigit(dir->d_name[i]))//返回所有数字目录 return 0; else return 1; } } //得到pid int my_getpid(char * str) { int length=strlen(str); char num[10]; int i,j,ret; if(strncmp(str,"Pid",3)==0) { for(i=0;i<length;i++) { if(str[i]>='0'&&str[i]<='9') break; }//获得str[i]中第一个数字位的i值 for(j=0;j<