迴圈緩衝區類

2021-04-13 06:22:17 字數 974 閱讀 4890

乙個迴圈緩衝區的實現類。

思路:分配乙個固定緩衝區,利用緩衝區讀寫資料。當寫到緩衝區底部而讀指標不在緩衝區頂部時,則寫指標移動到緩衝區頂部,繼續寫操作。

//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...