如何在C程序中调用ps -u Linux / Unix命令

时间:2014-09-16 03:04:51

标签: c linux

不确定还有什么比标题更重要。命令“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);
}

2 个答案:

答案 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进程并将所有数据传递给你的程序。