緩沖
全緩沖
/*來源:公眾號【編程珠璣】
博客:https://www.yanbinghu.com
buff.c*/
#include<stdio.h>
#include<unistd.h>
int main(void)
{
/*以可讀可寫的方式打開*/
FILE *fp = fopen("./test.txt","w+");
if(NULL == fp)
{
perror("open file failed");
return -1;
}
/*寫入內(nèi)容*/
char buf[] = "wechat:shouwangxiansheng\n";
fwrite(buf,sizeof(char),sizeof(buf),fp);
//fflush(fp);
/*sleep一段時間,以便觀察*/
sleep(20);
fclose(fp);
return 0;
}
$ gcc -o buff buff.c
$ ./buff
$ cat test.txt
$ cat test.txt
wechat:shouwangxiansheng
行緩沖
/*來源:公眾號【編程珠璣】
博客:https://www.yanbinghu.com
lineBuff.c*/
#include<stdio.h>
#include<unistd.h>
int main(void)
{
printf("wechat:shouwangxiansheng");
sleep(10);
return 0;
}
$ gcc -o lineBuff lineBuff.c
$ ./lineBuff
printf("wechat:shouwangxiansheng\n");
不帶緩沖
/*來源:公眾號【編程珠璣】
博客:https://www.yanbinghu.com
noBuff.c*/
#include<stdio.h>
#include<unistd.h>
int main(void)
{
fprintf(stderr,"wechat:shouwangxiansheng");
sleep(10);
return 0;
}
總結(jié)
-
通常磁盤上的文件是全緩沖區(qū)的 -
標準輸入和標準輸入通常是行緩沖的 -
指向終端設(shè)備的流通常是行緩沖,而指向文件時,則是全緩沖 -
為了盡可能顯示錯誤信息,標準錯誤是不帶緩沖的
推薦閱讀
(點擊標題可跳轉(zhuǎn)閱讀)
【編程之美】用C語言實現(xiàn)狀態(tài)機(實用)
【超詳細C語言】帶你吃透貪吃蛇游戲之精髓
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!