如何记录execve调用的输出?

时间:2014-12-07 21:13:40

标签: c logging execve

我写了这个简单的程序。我想将它的输出记录到test.log中,如下所示。我可以这样做吗?

int main(int argc, char **argv)
{
      int fd = open("test.log", O_CREAT|O_WRONLY);
      char *path[2];
      path[0] = "/bin/ls";
      path[1] = NULL;

      execve((char *)&path[0], &path, NULL);

      close(fd);
      return 0;
}

1 个答案:

答案 0 :(得分:0)

工作解决方案,在Rici的指导下。

int main(int argc, char **argv)
{
        int fd = open("test.log", O_CREAT|O_WRONLY, 0600);
        char *path[2];
        path[0] = "./tes";
        path[1] = NULL;

        dup2(fd, 1);
        dup2(fd, 2);
        close(fd);

        execve(path[0], (char **)&path, NULL);

        return EXIT_FAILURE;
}