日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux fprintf的用法

發(fā)布時(shí)間:2023/12/10 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux fprintf的用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、fprintf 函數(shù)描述

fprintf其作用是格式化打印,也叫格式化輸出,可以指定輸出到一個(gè)流文件中,即相輸出流中寫入數(shù)據(jù)。fprintf()函數(shù)根據(jù)指定的格式(format),向輸出流(stream)寫入數(shù)據(jù)(argument)。fprintf( )會(huì)根據(jù)參數(shù)format 字符串來(lái)轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果輸出到參數(shù)stream 指定的文件中,直到出現(xiàn)字符串結(jié)束('\0')為止。

函數(shù)聲明:

  • int?fprintf (FILE*?stream,?const char*format, [argument])

參數(shù):

  • stream-- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了輸出數(shù)據(jù)流。
  • format-- 這是 C 字符串,包含了要被寫入到流 stream 中的文本。它可以包含嵌入的 format 標(biāo)簽,format 標(biāo)簽可被隨后的附加參數(shù)中指定的值替換,并按需求進(jìn)行格式化。
  • format 標(biāo)簽屬性是%[flags][width][.precision][length]specifier
  • [argument]:附加的參數(shù)列表?

其中,Linux的輸出數(shù)據(jù)流stream提供了5種標(biāo)準(zhǔn)的流:

  • stdin? ? ? ? 標(biāo)準(zhǔn)輸入?
  • stdout? ? ? 標(biāo)準(zhǔn)輸出?
  • stderr? ? ? ?標(biāo)準(zhǔn)錯(cuò)誤
  • stdprn? ? ? 標(biāo)準(zhǔn)打印機(jī)
  • stdaux? ? ? 標(biāo)準(zhǔn)串行設(shè)備
  • stderr的優(yōu)先級(jí)高于stdout,在輸出調(diào)試信息的時(shí)候,優(yōu)先使用fprintf(stderr,...),或者某個(gè)指定的文件流fprintf(some_stream,...)。

    二、shell 輸出重定向

    需要說(shuō)明的是stdin并不一定來(lái)自鍵盤,stdout也并不一定顯示在屏幕上,他們都可以是重定向到磁盤文件或其他設(shè)備上。

    shell下stdin,stdout和stderr的文件描述符分別是0,1和2。

    2.1 采用 > 進(jìn)行輸出重定向,采用>>進(jìn)行追加方式重定向

    $./run > output.log #每次清空 $./run >> output.log #每次在outout.log末尾追加

    運(yùn)行./run后的正常日志會(huì)輸出到output.log文件中,此時(shí)錯(cuò)誤信息仍然會(huì)輸出到屏幕。

    2.2 分別輸出正常日志和錯(cuò)誤日志,2> 代表stderr重定向

    $./run > output.log 2> error.log

    2.3 錯(cuò)誤日志合并到正常日志

    $./run > output.log 2>&1

    三、程序中輸出重定向

    利用freopen函數(shù)在程序中進(jìn)行輸出重定向.

    函數(shù)聲明:

    • FILE * freopen(const char *filename, const char *mode,FILE *stream);

    參數(shù)說(shuō)明:

    • filename:要打開(kāi)的文件名;
    • mode:文件打開(kāi)的模式,和fopen中的模式(r/w)相同。
    • stream:文件指針,通常使用標(biāo)準(zhǔn)流文件(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"); }#關(guān)閉重定向 fclose(stdin); fclose(stdout);

    參考:

  • freopen 函數(shù)和 fopen 函數(shù)簡(jiǎn)單介紹
  • 百度百科
  • 關(guān)于LINUX C庫(kù)函數(shù) 中的 fprintf
  • 總結(jié)

    以上是生活随笔為你收集整理的Linux fprintf的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。