openfile.h

来自「操作系统课程设计。在UNIX平台下实现Solary操作系统的一些功能」· C头文件 代码 · 共 70 行

H
70
字号
/////////////////////////////////////////////////////////////
//FileName		: openfile.h
//
//Creator		: Fang Wenbin(0410706)
//CreateTime	: 2006-12-26
//
//File Desc:
//	the highest level for file writing and reading.
//	
/////////////////////////////////////////////////////////////#ifndef OPENFILE_H#define OPENFILE_H#include "copyright.h"#include "utility.h"#include "directory.h"#ifdef FILESYS_STUB		class OpenFile {  public:    OpenFile(char* f) { file = 0; currentOffset = 0; }    ~OpenFile() { Close(file); }			    int ReadAt(char *into, int numBytes, int position) {     		Lseek(file, position, 0); 		return ReadPartial(file, into, numBytes); 		}	    int WriteAt(char *from, int numBytes, int position) {     		Lseek(file, position, 0); 		WriteFile(file, from, numBytes); 		return numBytes;		}	    int Read(char *into, int numBytes) {		int numRead = ReadAt(into, numBytes, currentOffset); 		currentOffset += numRead;		return numRead;    		}    int Write(char *from, int numBytes) {		int numWritten = WriteAt(from, numBytes, currentOffset); 		currentOffset += numWritten;		return numWritten;		}    int Length() { Lseek(file, 0, 2); return Tell(file); }      private:    int file;    int currentOffset;};#else // FILESYSclass FileHeader;class OpenFile {  public:    OpenFile(char* fileName);    ~OpenFile();		    int Read(char *into, int numBytes);    int Write(char *from, int numBytes);	int ReadAt(char *into, int numBytes, int pos);	int WriteAt(char *into, int numBytes, int pos);  private:	Directory *dir;			//the basis of file operation!};#endif // FILESYS#endif // OPENFILE_H

⌨️ 快捷键说明

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