实现FUSE

时间:2009-12-27 00:41:09

标签: fuse

我想使用FUSE实现文件系统。当请求目录的内容时,只有该目录中的文件类型将被报告为子目录。例如,如果目录中有ugur.PDF,guler.JPG和devatate.PNG文件,则不会报告文件本身,而是报告类型(PDF,JPG和PNG)。我试图实现这个文件系统。我的问题是我无法想象如何在不改变ls -l命令的情况下报告? ls -l命令如何工作? (我有一个readdir函数,它将file_type和file_name加载到缓冲区。我试图改变,但我无法实现)

2 个答案:

答案 0 :(得分:5)

ls -l如何运作?这似乎是问题的症结所在。它调用fstat(2)。该系统调用填充stat结构。实现熔丝提供程序时,您将提供最终在stat结构中的数据。如果要更改目录结构,请返回各种项目的必要伪装信息。

答案 1 :(得分:0)

我可以想到两种方法: 1.使用像SQLite这样的数据库 您可以将文件,路径和文件类型存储在数据库中。然后当用户进入某个目录时,你可以说做一些查询,比如select file_types where path =“”并使用filler()填充为目录 2.递归遍历原始路径 您可以在当前目录中创建所有文件类型的列表,然后使用filler()将它们作为目录发布。然后,当用户输入任何一个目录时,您可以再次检查或查看cur_path是否在last_path(orig目录)中,您可以选择这些文件类型并显示它们