2011-09-09 136 views
0

我使用C和需要,我可以寫入任意的字節的兩個,並從讀出的字節流緩衝器機構。我寧願與平臺無關的東西(或者至少可以在osx和linux上運行)。有人知道任何寬鬆的輕量級庫或代碼比我可以放入嗎?Ç流緩衝器

我已經使用了libevent內的緩衝區,我可能最終會走這樣一條路,但似乎矯枉過正有libevent的作爲依賴時,我沒有做任何類型的基於事件的IO。

回答

0

如果你不依賴於C++和STL的可能是一些位介意的話,可以使用std :: stringstream的。在它周圍寫一個薄C包裝應該不會太困難。

+0

'S/STL/C++標準Library'。 STL沒有'std'命名空間。 –

+0

@Tomalak:我可能實際上意味着「一些東西,使用模板」(我不知道有多少的std ::'的basic_string <>'/等通過模板實例增加你的代碼大小)。但是'的std :: VECTOR'一直爲我工作... –

+0

我想你是誤會我了。 –

0

setbuf(3)(和它的別名)的「機制」您正在尋找?

請考慮下面的例子:

#include <stdio.h> 

int main() 
{ 
    char buf[256]; 
    setbuffer(stderr, buf, 256); 
    fprintf(stderr, "Error: no more oxygen.\n"); 
    buf[1] = 'R'; 
    buf[2] = 'R'; 
    buf[3] = 'O'; 
    buf[4] = 'R'; 
    fflush(stderr); 
}