-
大小: 14KB文件類型: .zip金幣: 1下載: 0 次發布日期: 2021-01-05
- 語言: 其他
- 標簽:
資源簡介
編寫帶緩存的文件操作類
從執行體程序庫中的CLLogger類可知,通過緩存要寫入文件中的數據,能夠提高讀寫磁盤的性能
請編寫一個文件操作的封裝類,其要求如下:
需要提供open/read/write/lseek/close等函數的封裝函數
該類要提供數據緩存服務。
調用該類的寫操作接口時,數據要首先寫到緩存,然后再根據策略寫到文件中。
調用該類的讀操作接口時,該類能根據策略緩存讀出的數據
讀寫緩存要保持一致性
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?“CLFileRW.h“
#define?LOG_FILE_NAME?“a.txt“
#define?BUFFER_SIZE?4096
CLFileRW*?CLFileRW::m_pFile?=?0;
pthread_mutex_t?*CLFileRW::m_pMutexForCreatingFile?=?CLFileRW::InitializeMutex();
pthread_mutex_t?*CLFileRW::InitializeMutex()
{
pthread_mutex_t?*p?=?new?pthread_mutex_t;
if(pthread_mutex_init(p?0)?!=?0)
{
delete?p;
return?0;
}
return?p;
}
CLFileRW::CLFileRW()
{
m_Fd?=?open(LOG_FILE_NAME?O_RDWR?|?O_CREAT|O_APPEND?S_IRUSR?|?S_IWUSR);?
if(m_Fd?==?-1)
throw?“In?CLFileRW::CLFileRW()?open?error“;
m_pBuffer?=?new?char[BUFFER_SIZE];//創建緩存區
m_nUsedBytesForBuffer?=?0;
m_bFlagForProcessExit?=?false;
m_bFlagForLa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-03-26?21:59??2\
?????文件????????7267??2016-10-02?16:16??2\CLFileRW.cpp
?????文件????????1119??2016-10-02?14:39??2\CLFileRW.h
?????文件?????????645??2016-10-02?16:05??2\CLFileRWTester.cpp
?????文件?????????516??2016-09-21?22:58??2\CLStatus.cpp
?????文件?????????419??2016-09-21?22:57??2\CLStatus.h
?????文件?????????544??2016-10-02?10:03??2\CLThread.cpp
?????文件?????????323??2016-10-02?10:03??2\CLThread.h
?????文件?????????851??2016-10-02?11:22??2\CLThreadRW.cpp
?????文件?????????489??2016-10-02?10:09??2\CLThreadRW.h
?????文件???????25568??2016-11-06?20:29??2\a.out
?????文件??????????14??2016-11-06?20:29??2\a.txt
評論
共有 條評論