本文整理汇总了C++中FileManager::write方法的典型用法代码示例。如果您正苦于以下问题:C++ FileManager::write方法的具体用法?C++ FileManager::write怎么用?C++ FileManager::write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileManager
的用法示例。
在下文中一共展示了FileManager::write方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pageOut
void BufferManager::pageOut(int index) {
// If page is dirty, write it to disk
if (dirtied[index] == 1) {
char buffer[4096] = {};
char* pageBytes = (char*) &pages[index];
for (int i = 0; i < 4096; i++) { buffer[i] = pageBytes[i]; }
int blockOffset = getBlockOffset(pageNums[index]);
fm->write(dbName, blockOffset, 8, buffer);
}
// Evict page
pages[index] = Page();
// Reset page status
pageNums[index] = 0;
dirtied[index] = 0;
pinned[index] = 0;
}
示例2: forceLSNRecord
void LogManager::forceLSNRecord(int index) {
for (int pageNum = 0; pageNum < 4; pageNum++) {
char page[4096] = {};
fm->read(logName, pageNum * 8, 8, page);
for (int i = 0; i < 73; i++) {
char bytes[56] = {};
int start = i * 56;
for (int j = 0; j < 56; j++) { bytes[j] = page[start + j]; }
LogRecord rec = LogRecord(bytes);
if (rec.LSN == 0) {
char* recordBytes = (char*) &log[index];
for (int k = 0; k < 56; k++) { page[start + k] = recordBytes[k]; }
fm->write(logName, pageNum * 8, 8, page);
return;
}
}
}
}