Linux fprintf的用法
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Linux fprintf的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                一、fprintf 函數描述
fprintf其作用是格式化打印,也叫格式化輸出,可以指定輸出到一個流文件中,即相輸出流中寫入數據。fprintf()函數根據指定的格式(format),向輸出流(stream)寫入數據(argument)。fprintf( )會根據參數format 字符串來轉換并格式化數據,然后將結果輸出到參數stream 指定的文件中,直到出現字符串結束('\0')為止。
函數聲明:
- int?fprintf (FILE*?stream,?const char*format, [argument])
參數:
- stream-- 這是指向 FILE 對象的指針,該 FILE 對象標識了輸出數據流。
- format-- 這是 C 字符串,包含了要被寫入到流 stream 中的文本。它可以包含嵌入的 format 標簽,format 標簽可被隨后的附加參數中指定的值替換,并按需求進行格式化。
- format 標簽屬性是%[flags][width][.precision][length]specifier
- [argument]:附加的參數列表?
其中,Linux的輸出數據流stream提供了5種標準的流:
stderr的優先級高于stdout,在輸出調試信息的時候,優先使用fprintf(stderr,...),或者某個指定的文件流fprintf(some_stream,...)。
二、shell 輸出重定向
需要說明的是stdin并不一定來自鍵盤,stdout也并不一定顯示在屏幕上,他們都可以是重定向到磁盤文件或其他設備上。
shell下stdin,stdout和stderr的文件描述符分別是0,1和2。
2.1 采用 > 進行輸出重定向,采用>>進行追加方式重定向
$./run > output.log #每次清空 $./run >> output.log #每次在outout.log末尾追加運行./run后的正常日志會輸出到output.log文件中,此時錯誤信息仍然會輸出到屏幕。
2.2 分別輸出正常日志和錯誤日志,2> 代表stderr重定向
$./run > output.log 2> error.log2.3 錯誤日志合并到正常日志
$./run > output.log 2>&1三、程序中輸出重定向
利用freopen函數在程序中進行輸出重定向.
函數聲明:
- FILE * freopen(const char *filename, const char *mode,FILE *stream);
參數說明:
- filename:要打開的文件名;
- mode:文件打開的模式,和fopen中的模式(r/w)相同。
- stream:文件指針,通常使用標準流文件(stdin/stdout/stderr)。
使用方法:
#從文本輸入 freopen("data.in","r",stdin);? #從屏幕輸入 freopen("/dev/console","r",stdin);#輸出到文件 freopen("data.out","w",stdout); if(freopen("err.log",w,stderr)==NULL) {fprintf(stderr,"error redirecting stderr\n"); }#關閉重定向 fclose(stdin); fclose(stdout);參考:
總結
以上是生活随笔為你收集整理的Linux fprintf的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: VS2010序列号(激活码)
- 下一篇: 树莓派使用STEP7:安装wiringP
