⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pf_manager.cpp

📁 斯坦福大学数据库实现的代码,非常好的.可以了解数据库系统的实现
💻 CPP
字号:
#include "PF_Manager.h"RC PF_Manager::CreateFile (const char *fileName) const {	/* Create the file */	int fileDesc = open (fileName, O_EXCL|O_CREAT|O_WRONLY, 00600);	if (fileDesc == -1) {		return PF_INVALIDNAME;	}	Frame *pFrame;	RC rc;	/* Request a page from buffer for writing the PF header*/	rc = bfm.Alloc (fileName, 0, fileDesc, pFrame);	if (rc != SUCCESS) {		close (fileDesc);		return rc;	}	/* Initialise the sub-header */	PF_FileSubHeader fileSubHeader 		= { 0, /* page number of last page on disk */		    1  /* number of allocated pages */ };	memcpy (&pFrame->page.pData[0], &fileSubHeader, PF_FILESUBHDR_SIZE);	/* Set the first bit to 1 in the header. This is to indicate that	 * the Header page is not a FREE_PAGE. */	pFrame->page.pData[PF_FILESUBHDR_SIZE] = 1;	/* Write the header to disk */	rc = bfm.WritePage (fileDesc, *pFrame);	if (rc != SUCCESS) {		close (fileDesc);		return rc;	}	/* Unpin the page */	bfm.Free (pFrame);	/* Close the file */	close (fileDesc);	return SUCCESS;}RC PF_Manager::DestroyFile (const char *fileName) const {	int rc = unlink (fileName);	if (rc == -1) {		return PF_UNIX;	}	else {		return SUCCESS;	}}RC PF_Manager::OpenFile (const char *fileName, PF_FileHandle &fileHandle) const {	return fileHandle.Open (fileName);}RC PF_Manager::CloseFile (PF_FileHandle &fileHandle) const {	return fileHandle.Close ();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -