我希望构建一个基于FUSE的地下文件系统应用程序,使用Java语言。
网络上有一些可用的绑定库,包括Fuse-J, jnetfs, Fuseforjava, javafuse。
截至今天,它们似乎都不是很活跃,所以我首先尝试了
我们必须实现的接口在这里: http://code.google.com/p/javafuse/source/browse/fs/JavaFS.java 我想要复制这个fuse helloworld example。
这段文字的意思是:该函数应该使用填充数据,将
截至今天,它们似乎都不是很活跃,所以我首先尝试了
JavaFuse
。我们必须实现的接口在这里: http://code.google.com/p/javafuse/source/browse/fs/JavaFS.java 我想要复制这个fuse helloworld example。
问题:这个有没有机会:
static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi)
{
(void) offset;
(void) fi;
if(strcmp(path, "/") != 0)
return -ENOENT;
filler(buf, ".", NULL, 0);
filler(buf, "..", NULL, 0);
filler(buf, hello_path + 1, NULL, 0);
return 0;
}
可以通过这个Java函数实现:
public int readdir_pre(String path, long buf, long filler, int offset, Fuse_file_info info);
public int readdir_post(String path, long buf, long filler, int offset, Fuse_file_info info, int result);
也许我错过了什么,但我看不到如何使用filler
来填充目录内容...
对于这个helloworld示例,还有其他奇怪的地方,比如:
public int read_post(String path, String buf, int size, int offset, Fuse_file_info info, int result);
这段文字的意思是:该函数应该使用填充数据,将
buf
与size
字节一起使用,而Java String
应该是不可变的。