-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathManager.hpp
72 lines (65 loc) · 1.7 KB
/
Manager.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <map>
class Manager {
private:
int cnt; //fd的序号
struct OpenFileTable {
int fd; //文件描述符
int Pno; //文件编号
int type; //打开方式
void init(int t, int pno, int cnt)
{
type = t;
fd = cnt;
Pno = pno;
}
};
std::map <int, OpenFileTable> Fd2Table; //记录文件编号到文件打开表的映射
int opensize = 5; //最大打开文件数量
public:
// 解析所有命令
void Command(std::string s);
/**
* 写一个文件
* @param[in] path 文件路径
* @param[in] limit 文件限制
* @param[in] maxLength 文件最大大小
*
*/
void Create(char *path, int limit, int maxLength);
/**
* 写一个文件
* @param[in] path 文件路径
* @param[in] type 模式
*
*/
int Open(char *path, int type);
/**
* 读一个文件
* @param[in] FD 文件描述符
* @param[in] beginPos 开始位置
* @param[in] len 长度
*
*/
void Read(int FD, int beginPos, int len);
/**
* 写一个文件
* @param[in] FD 文件描述符
* @param[in] beginPos 开始位置
* @param[in] len 长度
* @param[in] s 写的内容
*
*/
void Write(int FD, int beginPos, int len, string s);
/**
* 关闭一个文件
* @param[in] FD 文件描述符
*
*/
void Close(int FD);
/**
* 删除一个文件
* @param[in] path 需要删除文件的路径
*
*/
void Delete(char* path);
};