2

我写了这个简单的程序。我希望将它的输出记录到下面打开的 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;
}
4

1 回答 1

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;
}
于 2014-12-08T00:03:37.463 回答