147 {
148 Inode* root = ramfs_.GetRootInode();
149 ASSERT_NE(root, nullptr);
150
151
152 auto create_result =
153 root->
ops->
Create(root,
"rwtest.txt", FileType::kRegular);
154 ASSERT_TRUE(create_result.has_value());
155
156 Inode* file_inode = create_result.value();
157
158
160 file.
inode = file_inode;
162 file.
ops = ramfs_.GetFileOps();
163
164
165 const char* write_data = "Hello, RamFS!";
166 size_t write_len =
strlen(write_data);
167
168 auto write_result = file.
ops->
Write(&file, write_data, write_len);
170 EXPECT_EQ(write_result.value(), write_len);
171
172
174 char read_buffer[64] = {0};
175
176 auto read_result = file.
ops->
Read(&file, read_buffer,
sizeof(read_buffer));
178 EXPECT_EQ(read_result.value(), write_len);
179 EXPECT_STREQ(read_buffer, write_data);
180}
virtual auto Read(File *file, void *buf, size_t count) -> Expected< size_t >=0
从文件读取数据
virtual auto Write(File *file, const void *buf, size_t count) -> Expected< size_t >=0
向文件写入数据
File — 打开的文件实例(每次 open 产生一个)