乙個迴圈緩衝區的實現類。
思路:分配乙個固定緩衝區,利用緩衝區讀寫資料。當寫到緩衝區底部而讀指標不在緩衝區頂部時,則寫指標移動到緩衝區頂部,繼續寫操作。
//insream.h
#include
#pragma once
class insream//迴圈堆疊
;byte* getreadcursor();
byte* getwritecursor();
bool pushbyte(byte* pdata,long buflen);
bool popbyte(byte* pdata,long buflen);
long getdatalen();
};//insream.cpp
#include "stdafx.h"
#include "instream.h"
//// construction/destruction
//insream::insream()
insream::~insream()
insream::setbufsize(uint _size)
return false;
}insream::create()
bool insream::pushbyte(byte* pdata,long buflen)
return false;
}if(c==0)//棧空
if(c>0)
if(h==buflen)
if(hreturn false;
}bool insream::popbyte(byte* pdata,long buflen)
if(h==buflen)
if(hif(c>0)
return false;
}return false;
}long insream::getdatalen()
return datelen;
}
迴圈緩衝區
這次需要記錄之前了解到的參考自linux核心迴圈佇列kfifo的迴圈緩衝區實現方法。1 迴圈緩衝區的實現依靠佇列來實現,也就是分配乙個陣列來儲存實際資料。2 對於乙個迴圈緩衝區來說,我們需要關注的點有 緩衝區大小應該設定多少?緩衝區隊頭 in 隊尾 out 初始值?緩衝區什麼時候為空,什麼時候為滿?...
linux c 迴圈緩衝區模板類
一 概述 實際學習和工作中,我們經常會遇到讀寫大量資料的情況,這個時候我們可能就用到了迴圈緩衝區。迴圈緩衝區在處理大量資料的時候有很大的優點,迴圈緩衝區在一些競爭問題上提供了一種免鎖的機制,免鎖的前提是,生產者和消費都只有乙個的情況下,否則也要加鎖。二 迴圈緩衝區的實現理論如下圖 三 實現 如下所示...
輸入緩衝區與輸出緩衝區
本博文通過一段程式來理解輸入緩衝區與輸出緩衝區。程式如下 author wanghao created time thu 17 may 2018 06 03 12 ampdt file name test.c description include int main int argc,const c...