2017-01-26 78 views
0

追加在嘗試打開追加模式這樣一個文件到標準輸出:如何打開一個文件到標準輸出和C

int f2; 
f2 = open(STDOUT_FILENO,O_APPEND|O_CREAT); 

但是這個代碼不工作(F2 == - 1開盤後)。問題是什麼?有沒有另一種方法來做到這一點?

+0

你爲什麼試圖以這種方式打開標準輸出? – Peter

回答

-1

代碼 中存在語法錯誤,首先必須定義文件指針。然後定義讀或寫選項 例如 FILE * in_file = fopen(「name_of_file」,「r」); //只讀 FILE * out_file = fopen(「name_of_file」,「w」); //只寫

+1

這是關於OS提供的系統調用'open',而不是'fdion'提供的'stdio.h'。你根本沒有解決這個問題。 – ShadowRanger

1

由於stdout已經打開您想要的標誌,您不需要(也不應該)嘗試實際打開它。只是use dup如果你需要爲標準輸出重複描述:

#include <unistd.h> 

int f2 = dup(STDOUT_FILENO); 

注:兩個手柄共享文件指針,所以你不能獨立lseek他們。幸運的是,由於這是stdout我們在談論,「尋求」無論如何都是毫無意義的概念。

+0

謝謝!這對我來說很有意義。 – user2030942

相關問題