我想建立一个FUSE基于文件系统下井应用,Java中。 有图书馆的几个绑定可以在网络上保险丝-J , jnetfs , Fuseforjava , javafuse 。
他们似乎都不如今天真的还活着,所以我给我的第一次尝试JavaFuse
。
我们必须实现的接口有: http://code.google.com/p/javafuse/source/browse/fs/JavaFS.java
我想重现这一导火索HelloWorld示例 。
问:是否有任何机会,这一点:
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);
- Fuse_file_info
也许我错过了什么,但我不能看到如何使用filler
来填充目录的内容...
还有其他的古怪只是这个HelloWorld示例,如:
public int read_post(String path, String buf, int size, int offset, Fuse_file_info info, int result);
这是为了填补 buf
与size
数据的字节,而Java String
应该是不可变的。