c++ - 创建允许挂载目录的程序

标签 c++ linux

<分区>

我想用 C++ 创建一个程序,它允许客户端实质上挂载服务器的目录,而不是使用该目录及其包含的文件,就好像它们存储在本地一样。

服务器将在 linux 上运行,但客户端可以是 linux 或 windows。尽管我不介意一开始就让它仅限于 Linux,只要可以添加功能以支持 Windows 客户端,而无需重写大量代码。

我将如何着手创建这样的东西?在过去的几周里,我学到了很多关于套接字的知识,我假设它发挥了作用,但我还没有找到如何允许挂载目录,然后在文件发生某些事情时执行某些操作在该目录中。

例如,当用户保存文件时,服务器除了保存文件外,还应该能够在另一个目录中创建该文件的时间戳备份。

我从哪里开始学习如何执行此操作?

最佳答案

在 Linux 下,现代桌面环境已经包含了这种功能。使用 mount 和 fuse,您还可以挂载当今可用的大多数网络文件系统。

如果您决定继续这样做,我猜您需要选择什么级别来进行抽象。具有桌面环境抽象就足够了吗,比如在 KDE 中制作 kioslave,这会限制您作为用户使用 KDE 应用程序。或者你应该选择 FUSE 模块,它可以在文件系统级别上工作,并且可以与所有应用程序一起工作,当然缺乏 kioslaves 的 UI 集成。

在 Windows 下,我认为你唯一的方法是使用提供的虚拟文件系统 api,我可以发誓我最近读到过类似的东西,但我找不到它。我相信也可以进行资源管理器集成,但我不确定。

关于c++ - 创建允许挂载目录的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9568214/

相关文章:

php - 我怎样才能弄清楚为什么 cURL 挂起并且没有响应?

linux - 如何在 Mac OS X 默认终端上禁用来自 "bracketed paste mode"的奇怪字符?

c++ - 计算表达式直到一个返回真

c++ - 使用operator=和initializer_list找不到继承

c++ - COLLADA:反向绑定(bind)姿势在错误的空间?

linux - 如何在不通过 telnet 使用管道的情况下串行传递命令

c# - 在使用 Mono 的 Ubuntu 中运行基于 DevExpress 的 ASP.NET Web 应用程序时出错

linux - 阻止 apache 中的域*

c++ - 从字符串中以指数表示法解析整数

c++ - 在 Linux 中用 C++ 实现非基于文本的文件的字数统计作为 wc