📄 mutexbuff.cpp
字号:
#include "mutexbuff.h"#include <string.h>#include <iostream>using namespace std;MutexBuff::MutexBuff( int length, int num) { len=length; frame=num; buff=(unsigned char*)malloc(len); framesize=len/frame; }MutexBuff::~MutexBuff(){ free(buff);}void MutexBuff::writebuff(int index,unsigned char *srcbuf){ int i; unsigned char *baseaddr; i=index; lock(); baseaddr=buff+framesize*i; memcpy(baseaddr,srcbuf,framesize); dataflag[i%frame]=1; signal(); unlock();}void MutexBuff::readbuff(int index,unsigned char *dstbuf){ int i; unsigned char *baseaddr; i=index; lock(); wait(); baseaddr=buff+framesize*i; memcpy(dstbuf,baseaddr,framesize); dataflag[i%frame]=0; unlock();}void MutexBuff::testdata(int index){ int i; unsigned char *base; base=buff+framesize*index; printf("framesize %d\n",framesize); printf("buffindex %d\n",index); printf("buffbaseaddr %x\n",buff); printf("currentaddr %x\n",base); for(i=0;i<framesize;i++) printf("mutexbuff test data %d \n",base[i]);}void MutexBuff::clearbuff(int index){ int i; i=index; unsigned char *base; base=buff+i*framesize; memset(base,0,framesize);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -