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 + -
显示快捷键?