在习惯使用linux时,我习惯用bash编写脚本,但在C语言编写Linux脚本时我是一个新手。
对于作业,我必须使用流程。对于有经验的程序员来说,没有什么难事我只需循环通过某个目录中的所有进程并获取基本信息。
更确切地说,我在第一个参数中收到一个进程所在的目录(默认/ proc /)然后我必须打印名称,PID,PPID,处理器状态(S / R),打开文件数和数量该进程的线程。必须对位于给定目录中的所有进程执行此操作,但如果存在第二个参数(switch -s PID),则只打印位于所接收PID的子树中的进程的进程信息。最后一个参数(p / n / t)决定了您必须选择的打印顺序。 p按PID排序,i按进程名称排序,t按线程数排序
打印格式printf("%10s %5s %5s %2s %3s %3s\n", "name", "PID", "PPID", "state", "Files", "Threads");
现在我并没有要求你写下一切而不是我,所以我不付出努力,我只是希望被送到正确的轨道,如何解决问题,一些例子,解释, ...
谢谢:)
答案 0 :(得分:1)
您可以尝试以下内容:
/proc
opendir
获取/proc
readdir
为dirent
内的每个实体获取/proc
opendir
。在每个目录中,有趣的事情是stat
,也许是子目录fd
当然有很多资源: