【发布时间】:2015-08-10 19:41:05
【问题描述】:
我正在尝试将 ls 命令的输出重定向到文件 fout.txt 但文件 fout.txt 仅包含 这是输出
下面是我的程序:
int fout, ferr;
char *tok[3];
tok[0] = "ls", tok[1] = ">", tok[2] = "fout.txt";
fout = open("fout.txt", O_RDWR|O_CREAT|O_APPEND, 0600);
ferr = open("ferr.txt", O_RDWR|O_CREAT|O_APPEND, 0600);
puts("Here is the output\n");
execvp(tok[0], tok);
close(fout);
close(ferr);
请在这里帮忙。
【问题讨论】:
-
你在什么操作系统上运行这个?
-
另外,您确定您使用的是
puts而不是fputs和fout? -
你不检查 execvp() 的返回值。可能由于文件 fout.txt 当前被另一个进程(您的程序)打开而失败。
-
文件怎么可能不为空?你永远不会给它写信!但你至少应该在某处看到
ls: >: No such file or directory...
标签: c