亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 庫函數(shù) setvbuf() 使用方法及示例

C 標(biāo)準(zhǔn)庫 - <stdio.h>

C 庫函數(shù) int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 定義流 stream 應(yīng)如何緩沖。

聲明

下面是 setvbuf() 函數(shù)的聲明。

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

參數(shù)

  • stream -- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了一個(gè)打開的流。
  • buffer -- 這是分配給用戶的緩沖。如果設(shè)置為 NULL,該函數(shù)會(huì)自動(dòng)分配一個(gè)指定大小的緩沖。
  • mode -- 這指定了文件緩沖的模式:
模式描述
_IOFBF全緩沖:對(duì)于輸出,數(shù)據(jù)在緩沖填滿時(shí)被一次性寫入。對(duì)于輸入,緩沖會(huì)在請(qǐng)求輸入且緩沖為空時(shí)被填充。
_IOLBF行緩沖:對(duì)于輸出,數(shù)據(jù)在遇到換行符或者在緩沖填滿時(shí)被寫入,具體視情況而定。對(duì)于輸入,緩沖會(huì)在請(qǐng)求輸入且緩沖為空時(shí)被填充,直到遇到下一個(gè)換行符。
_IONBF無緩沖:不使用緩沖。每個(gè) I/O 操作都被即時(shí)寫入。buffer 和 size 參數(shù)被忽略。
  • size --這是緩沖的大小,以字節(jié)為單位。

返回值

如果成功,則該函數(shù)返回 0,否則返回非零值。

在線示例

下面的示例演示了 setvbuf() 函數(shù)的用法。

#include <stdio.h>
int main()
{
   char buff[1024];
   memset( buff, '\0', sizeof( buff ));
   fprintf(stdout, "啟用全緩沖\n");
   setvbuf(stdout, buff, _IOFBF, 1024);
   fprintf(stdout, "這里是 (cainiaoplus.com)\n");
   fprintf(stdout, "該輸出將保存到 buff\n");
   fflush( stdout );
   fprintf(stdout, "這將在編程時(shí)出現(xiàn)\n");
   fprintf(stdout, "最后休眠五秒鐘\n");
   sleep(5);
   return(0);
}

讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果。在這里,程序把緩沖輸出保存到 buff,直到首次調(diào)用 fflush() 為止,然后開始緩沖輸出,最后休眠 5 秒鐘。它會(huì)在程序結(jié)束之前,發(fā)送剩余的輸出到 STDOUT。

啟用全緩沖
這里是 (cainiaoplus.com)
該輸出將保存到 buff
這將在編程時(shí)出現(xiàn)
最后休眠五秒鐘

C 標(biāo)準(zhǔn)庫 - <stdio.h>