如何在我的程序中使用终端命令的输出?

时间:2011-03-05 18:55:43

标签: c command-line redirect pipe

我想解析命令w的输出,以便在我的程序中使用 我知道我可以使用w执行execlp但是有没有办法直接将w的输出输入我的程序?我想我可以使用管道或其他东西,但我不太了解它或管道如何在execlp命令中工作。

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

查看popen有一个简单的方法,虽然它有各种各样的弱点(例如,调用shell)。 libslack也有popen替换(协同处理函数);它属于GPL。

答案 1 :(得分:1)

使用popen(3)

#include <stdio.h>
main()
{
 char *command="w";
 FILE *fpipe = (FILE*)popen(command,"r")) );
 char line[256];
 while ( fgets( line, sizeof(line), fpipe))
 {
  printf("%s", line);
 }
 pclose(fpipe);
}

答案 2 :(得分:0)

man popen

(其他一些随机字符可以通过蹩脚的过滤器)