libevent學習筆記 setvbuf 函式

2021-07-09 10:30:17 字數 555 閱讀 9587

函式名: 

setvbuf

用 法: 

int setvbuf(file *stream, char *buf, int type, unsigned size);

type : 期望緩衝區的型別:

_iofbf(滿緩衝):當緩衝區為空時,從流讀入資料。或者當緩衝區滿時,向流寫入數 據。

_iolbf(行緩衝):每次從流中讀入一行資料或向流中寫入一行資料。

_ionbf(無緩衝):直接從流中讀入資料或直接向流中寫入資料,而沒有緩衝區。

size : 緩衝區內位元組的數量。

這段**:

if (setvbuf(output, null, _iolbf, 132) != 0)

是設定output檔案的buffer,這個buffer會由系統自行呼叫malloc來申請,buffer是按行模式工作的,每行最大132個位元組,也就是當你寫output的時候,每寫完一行(遇見\n),就會把整行真正的寫到磁碟檔案上,在遇到換行符前,都暫存在系統自動申請的buffer中,而不會寫到真正的磁碟檔案上。

【為什麼要使用setvbuf函式?】

libevent學習筆記之一 Libevent簡介

libevent學習筆記之一 libevent簡介 libevent 是乙個用c語言編寫的 輕量級的開源高效能事件通知庫,主要有以下幾個技術點 事件驅動 event driven 高效能 輕量級,專注於網路,不如同類產品的 ace 那麼臃腫龐大 但源 相當精煉 易讀 現在支援跨平台 可以在 wind...

libevent學習總結

對libevent進行一下簡要的總結,libevent將socket 訊號事件 定時器進行統一管理 libevent首先會檢查操作支援那種型別的多路復用函式,檢查順序為 evport kqueue epoll devpoll poll select。主要研究了一下libevent 對socket的管...

libevent總結學習

memcached用了libevent,但是redis沒有用libevent。redis的 還沒有libevent的三分之一。libevent有下面幾大部分組成 事件管理包括各種io socket 定時器 訊號等事件,也是libevent應用最廣的模組 快取管理是指evbuffer功能 dns是li...