不确定还有什么比标题更重要。命令“ps -u myusername”显示我帐户名下的所有当前正在运行的进程。
如何在C程序中调用它?这应该不难,但我在网上找到文档时遇到了麻烦。
编辑:好的,让我们试一试。
x = fork(); //Create a new process fork.
if(x == 0) {
//Then the fork was created successfully. use the new fork to call ps.
char *argv[2] = {"-u" ,"myusername"};
execv("/bin/ps", argv);
}
答案 0 :(得分:2)
char *argv[3] = {"ps", "-l", NULL};
execv("/bin/ps", argv);
请记住在args的末尾分别添加NULL和命令。 (此处为ps和NULL)
答案 1 :(得分:0)
http://linux.die.net/man/3/system
http://linux.die.net/man/3/popen
尝试其中之一。除了重定向到文件或fifo之外,系统执行shell命令无法获取输出。 popen是你想要的,你将创建一个/ bin / ps进程并将所有数据传递给你的程序。