C 如何将标准输出重定向到文件

stdin,stdout,stderr是常量,无法直接赋值?

FILE *fp;

stdin = fp


gcc x86编译无警告,运行正常。

android gcc(ARM-48) 编译报错

error: lvalue required as left operand of assignment
         stdin = fp;
               ^

解决方法如下:

如何将标准输出到文件重定向从 Visual C/c + + 程序

本文介绍如何将重定向标准输出到一个文件从 C 程序中,然后还原原始 stdout 稍后在同一个程序中。通常用于重定向标准输出或标准输入 C 函数是 freopen()。若要将标准输出重定向到名为文件的文件。TXT,使用以下调用:

   freopen( "file.txt", "w", stdout );
此语句将导致所有后续的输出,它通常旨在向标准输出,转到该文件的文件。TXT 中。

若要返回到显示 (默认 stdout) 标准输出,请使用下面的调用:
   freopen( "CON", "w", stdout );
在这两种情况下,请检查返回值的 freopen(),以确保重定向实际花费的地方。

下方是一个小的程序,以演示的标准输出重定向:

示例代码

// Compile options needed: none

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
   FILE *stream ;
   if((stream = freopen("file.txt", "w", stdout)) == NULL)
      exit(-1);

   printf("this is stdout output\n");

   stream = freopen("CON", "w", stdout);

   printf("And now back to the console once again\n");
}
此程序会假定该标准输出是朝末尾的程序控制台重定向。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章