在C中显示正在运行的进程列表

时间:2013-05-10 12:44:59

标签: c linux unix system-calls

您能否建议我检索当前正在运行的进程的系统调用? (我必须写一个像 C 函数)

我尝试阅读proc/文件夹,但在我的情况下并不好。

2 个答案:

答案 0 :(得分:3)

在Linux上执行此操作的唯一方法是访问/proc/伪文件系统。请记住,/proc/文件不是磁盘上的“真实”文件,因此I / O(即读取/proc/文件)非常快。

阅读proc(5)手册页。

您可以使用正在阅读libprocps

/proc/

pstop(以及htop等...)命令全部使用/proc/;如果你想在程序中使用它们(这可能是一个坏主意)使用popen(3)(得到他们的输出)而不是system(3)

为了获得正在运行的流程,您可以在readdir上使用/proc/,然后阅读/proc/*/stat个文件,记住状态为R等的文件...等等。 ..

答案 1 :(得分:1)

PS

ps aux

其中:

-A: select all processes
a: select all processes on a terminal, including those of other users
x: select processes without controlling ttys

我个人喜欢使用:

ps -ef