免责声明:这是作业;我不想要解决方案。
此外,没有可用的 c/c++ 标准库之外的库。
我正在寻找正确的方向,以了解我分配的学期项目(创建虚拟 FTP 服务器)中的这部分工作甚至要求我做什么:
服务器允许创建虚拟文件系统。虚拟文件系统是指服务目录到文件系统上真实目录的映射。例如,客户端树如下所示: /home/user1 映射到 /mnt/x/home/user1 /www 映射到 /var/cache/www /home/user_list.txt 映射到 /var/ftpclient/user_list.txt用户将看到 /home/user1 目录和 /www 目录以及文件 /home/user_list.txt
我向我的讲师提出了这个问题:
是
/home/user1 -> /mnt/x/home/user1
,/www -> /var/cache/www
和/var/cache/www/home/user_list.txt -> /var/ftpclient/user_list.txt
唯一需要支持的目录映射(因此每个用户将有 2 个目录和 1 个文件,如图所示为他们自动创建)?
得到以下答复:
这些映射只是示例设置。您的解决方案应该能够以类似的方式将任何内容映射到任何内容。
根据我目前的理解,我只需要允许我的 FTP 服务器的用户访问显式映射的目录和文件(通过配置文件指定)。这可能意味着类似的映射/home -> /home/users
(因此所有用户都会看到他们位于用于 FTP 的东西的伪根目录中,例如用户 Bob 看到/home/bob/
.
另外,我需要使用哪个 API 来支持 , 等 FTP 命令ls
,cd
这些命令适用于真正的底层文件系统?