【发布时间】:2012-03-18 22:31:48
【问题描述】:
我正在尝试将其更改为打印到终端屏幕而不是文件。所以我正在尝试打印到标准输出。
char buf;
int s, n;
char filename[LINELEN];
char *recfile = "recfile.txt";
FILE *finp;
fflush(NULL);
while(buf != EOF)
{
fflush(finp);
if (read(s, &buf, 1) < 0) {
printf("\terror in recieving file\n");
}
if(buf != EOF)
(void) fputc(buf, finp);
}
fclose(finp);
close(s);
我试图做出这个改变。
finp = freopen("/dev/null","w+", stdout);
linux 中的一切都是文件,对吧?那为什么没用呢?
【问题讨论】:
-
我认为您并未展示所有代码。但是为什么不直接调用
putc()而不是fputc()?如果您希望输出继续stout,似乎将其重定向到/dev/null不是一个好主意... -
我正在尝试...打印到终端屏幕您为什么认为
freopen("/dev/null","w+", stdout)会将stdout重新关联到终端? -
这个程序片段几乎肯定不能工作,原因有几个。我们需要查看所有源代码,最好是它试图读取的输入文件的示例。