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");
}
此程序會假定該標準輸出是朝末尾的程序控制臺重定向。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章