| 479 | // 辅助函数实现 |
| 480 | |
| 481 | auto RamFs::FindInDirectory(RamInode* dir, const char* name) -> RamDirEntry* { |
| 482 | if (dir == nullptr || dir->inode.type != FileType::kDirectory || |
| 483 | dir->data == nullptr) { |
| 484 | return nullptr; |
| 485 | } |
| 486 | |
| 487 | RamDirEntry* entries = static_cast<RamDirEntry*>(dir->data); |
| 488 | for (size_t i = 0; i < dir->child_count; ++i) { |
| 489 | if (strcmp(entries[i].name, name) == 0) { |
| 490 | return &entries[i]; |
| 491 | } |
| 492 | } |
| 493 | |
| 494 | return nullptr; |
| 495 | } |
| 496 | |
| 497 | auto RamFs::AddToDirectory(RamInode* dir, const char* name, Inode* inode) |
| 498 | -> Expected<void> { |