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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

stdin,stdout,stderr

發(fā)布時(shí)間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stdin,stdout,stderr 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們?cè)趯慍程序時(shí)經(jīng)常遇到printf(),fprintf(),perror(),這些東西到底有什么作用。說(shuō)到這不得不提及stdin,stdout,stderr。想想,我們?cè)谟肅去寫文件時(shí)的操作,File *fp=fopen(),這個(gè)fp就是我們向系統(tǒng)申請(qǐng)的,相當(dāng)于一通往文件的通道。

?

其實(shí),stdin,stdout,stderr就是這個(gè)fp,不過(guò)他是隨著計(jì)算機(jī)系統(tǒng)的開(kāi)啟默認(rèn)打開(kāi)的,其中0就是stdin,表示輸入流,指從鍵盤輸入,1代表stdout,2代表stderr,1,2默認(rèn)是顯示器。printf()其實(shí)就是向stdout中輸出,等同于fprintf(stdout,“****”),perror()其實(shí)就是向stderr中輸出,相當(dāng)于fprintf(stderr,“***”),那到底stdout,和stderr有什么區(qū)別和作用呢?

?

我們?cè)趯懗绦驎r(shí)用printf()是為了我們能監(jiān)控我們的程序運(yùn)行狀況,或者是說(shuō)debug,如果我們的程序是一直運(yùn)行,不停下來(lái),我們不可能時(shí)刻盯著屏幕去看程序輸出,這時(shí)我們就可以用文件重定向。將輸出到一文件中,我們以后就可以看這文件就行。舉個(gè)例子,test.c

[cpp]?view plain?copy?

1.?<pre?class="cpp"?name="code">#include<stdio.h>??

2.???

3.?int?main()??

4.?{??

5.??????printf("stdout?Helo?World!!\n");???

6.???

7.??????return?0;??

8.?} ?

編譯過(guò)后,我們./test > test.txt(默認(rèn)是將stdout里的內(nèi)容重定向到文件中),這樣就把test程序輸出的內(nèi)容輸出到test.txt文件中。還有一種更明晰的寫法./test? 1>test.txt,這里的1就代表stdout。說(shuō)到這你應(yīng)該知道stderr該怎樣處理了。再舉個(gè)例子test.c:

[cpp]?view plain?copy?

1.?#include<stdio.h>??

2.???

3.?int?main()??

4.?{??

5.??????printf("Stdout?Helo?World!!\n");??

6.??????fprintf(stdout,"Stdout?Hello?World!!\n");??

7.??????perror("Stderr?Hello?World!!\n");??

8.??????fprintf(stderr,"Stderr?Hello?World!!\n");??

9.????????

10.??????return?0;??

11.?} ?

編譯過(guò)后,./test,屏幕上是四條輸出,如果./test > test.ext ,結(jié)果是屏幕上輸出兩條Stderr Hello World!!,Stdout Helo World!!在文件test.txt中,基于上面說(shuō)的很容易理解現(xiàn)在的結(jié)果,于是我們可以隨便處理我們想要的輸出,例如:

?

./test 1>testout.txt 2>testerr.txt,我們將stdout輸出到文件testout.txt中,將stderr輸出到testerr.txt文件中;

./test 1>testout.txt ,將stdout輸出到文件testout.txt 中,stderr輸出到屏幕上;

./test 2>testerr.txt,將stderr輸出到文件testerr.txt中,stdout輸出到屏幕上;

./test > test.txt 2>&1,這是將stdout和stderr重定向到同一文件test.txt文件中。

?

如果我們不想看到輸出內(nèi)容,既不想在屏幕上看見(jiàn),也不想重定向到文件中,別擔(dān)心,萬(wàn)能的Linux有解決辦法,./test >?/dev/zero 2>&1,這樣就看不到任何輸出了。

?

Note:stderr,和stdout還有重要一點(diǎn)區(qū)別,stderr是沒(méi)有緩沖的,它立即輸出,而stdout默認(rèn)是行緩沖,也就是它遇到‘\n’,才向外輸出內(nèi)容,如果你想stdout也實(shí)時(shí)輸出內(nèi)容,那就在輸出語(yǔ)句后加上fflush(stdout),這樣就能達(dá)到實(shí)時(shí)輸出的效果。


轉(zhuǎn)載于微信公眾號(hào)?嵌入式ARM

總結(jié)

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

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

主站蜘蛛池模板: 青青草娱乐视频 | 亚洲国产黄色av | 日韩视频网 | 黄色片99| 国产亚洲无码精品 | 国产精品午夜久久 | 乱日视频 | 好吊色这里只有精品 | 亚洲国产小视频 | 日韩成人精品一区二区三区 | 激情国产一区 | 每日在线更新av | 免费色网址 | 精品免费一区二区 | 亲嘴扒胸摸屁股免费视频日本网站 | a天堂亚洲| 亚洲经典三级 | 欧美日韩国产成人 | 国产精品视频区 | 一区二区在线视频观看 | 日韩欧美视频一区二区三区 | av大片在线免费观看 | 亚洲啊v在线 | 鬼眼| 色中文字幕 | 欧美一区二区三区免费观看 | 欧美成人三级 | 爽爽影院免费观看 | 久久免费福利 | 好看的毛片 | 久久99精品久久久久久琪琪 | 无码日韩人妻精品久久蜜桃 | 国产在线播| 毛片av免费看| 亚洲精品乱码久久久久久蜜桃动漫 | 99久久久国产精品免费蜜臀 | 中文字字幕在线中文乱码 | 日韩精品成人免费观看视频 | 无码人妻精品中文字幕 | 50一60岁老妇女毛片 | 少妇裸体视频 | 海角社区登录 | 国产精品九九视频 | 国产精品情侣呻吟对白视频 | 真人bbbbbbbbb毛片| 国产精品19乱码一区二区三区 | 日本美女一区二区三区 | 欧美日韩一级黄色片 | 波多野结衣av在线播放 | 国产精品久久久久久久久免费 | 日韩av在线网 | 内裤摩擦1v1h | 一区二区国产在线观看 | 国产超碰人人爽人人做人人爱 | 亚洲欧美日韩一区 | 一区二区中文字幕 | 毛片视频软件 | www.xxx.日本 | 日韩精品一区二区三区在线 | 欧美三级一级片 | 神马福利视频 | 潘金莲一级淫片a.aaaaa播放 | 激情av一区 | 国产高潮网站 | 少妇又紧又色又爽又刺激视频 | 国产做a| 欧美精品在线观看视频 | 国产6区 | 国产农村妇女毛片精品 | 久久久久亚洲av无码专区喷水 | 欧美天天性 | 宗合久久 | 国产欧美一区二区三区鸳鸯浴 | 91porny九色 | 一区二区乱子伦在线播放 | 91人妻一区二区 | 成年人免费av | 日韩伊人久久 | 91精品在线观看视频 | 精品福利一区二区三区 | 动漫涩涩免费网站在线看 | 久久综合鬼色 | 国产在线一区二区三区四区 | 中出一区二区 | 筱田优全部av免费观看 | 夜夜夜爽 | 射美女 | 中文字幕一区二区三区人妻四季 | 国产精品--色哟哟 | 亚洲人在线播放 | 国产一区二区中文字幕 | 欧美熟妇一区二区 | 牛牛澡牛牛爽一区二区 | 亚洲成人精品在线 | 国产偷拍一区二区 | 粉嫩aⅴ一区二区三区四区五区 | www狠狠操 | 欧美aaaaa | 欧美精品一区二区久久婷婷 |