在Unix或者Linux系统上执行一个命令,输出会默认打印在标准输出上。下面的程序通过system系统调用执行一个ifconfig命令,然后将输出重定向到一个txt文件当中。

#include <stdout.h>

#include <stdlib.h>

#include <unistd.h>

#define BUF_MAX 40

int main(int argc, char *argv[])

{

  // 设置要重定向的目的文件

  char dfile[] = "/root/test.txt";

  // 要执行的命令

  char cmd[] = "ifconfig";

  // 将文件指针与标准输出流绑定

  FILE *fd = freopen(dfile, "w+", stdout);

  // system系统调用执行ifconfig

  system(cmd);

  // 关闭文件指针fd

  fclose(fd);

  return 0;

}