我正在用C写一个程序。这个程序打印出当前目录下的文件。 我希望某些文本文件中的输出不在控制台上。 我的计划是: - 提前写入文件而不是标准输出
int main()
{
system("ls");
return 0;
}
谢谢!
我正在用C写一个程序。这个程序打印出当前目录下的文件。 我希望某些文本文件中的输出不在控制台上。 我的计划是: - 提前写入文件而不是标准输出
int main()
{
system("ls");
return 0;
}
谢谢!
既然你已经使用system()
,而这已经是平台相关的,只是使用shell的重定向功能 - 即
system("ls > /home/you/thefile");
@RolandIllig,你说得对! – 2012-03-18 23:09:16
我同意这比fopen()更容易,但它并不完全是如何写入C中的文件的规范示例。 – dwerner 2012-03-18 23:36:34
这是你如何写一个文件,只需更换你的输出与你想要的文件。 正如其他人提到你可以将它管到一个文件。
FILE *ofp;
char outputFilename[] = "out.txt";
ofp = fopen(outputFilename, "w");
if (ofp == NULL) {
fprintf(stderr, "Can't open output file %s!\n",
outputFilename);
exit(1);
}
fprintf(ofp, "ls");
fclose(ofp);
有一种其他功能标准输出重定向到一个文件
###stdio.h
###FILE *freopen(const char *filename, const char *mode, FILE *stream);
int main()
{
char outputFilename[] = "out.txt";
freopen(filename, "w", stdout)
system("ls");
return 0;
}
所有重定向输出将被写入到文件“out.txt”
那么一个办法就是一段时间后,标准输出在终端中执行''./xyz> logfile.txt' – noMAD 2012-03-05 05:22:18