javafuse有可能工作吗?
我想用Java构建一个基于underland的文件系统应用程序。 web上有一些可用的绑定库 到今天为止,它们似乎都还活着,所以我第一次尝试了javafuse有可能工作吗?,java,fuse,Java,Fuse,我想用Java构建一个基于underland的文件系统应用程序。 web上有一些可用的绑定库 到今天为止,它们似乎都还活着,所以我第一次尝试了JavaFuse 我们必须实现的接口是: 我想复制这个 问题:这是否有可能: static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi
JavaFuse
我们必须实现的接口是:
我想复制这个
问题:这是否有可能:
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);
它应该用
size
字节的数据填充buf
,而JavaString
应该是不可变的。我不太清楚,你想用双功能read\u pre
和read\u post
做什么
虽然我猜,它们代表了工作前和工作后。也许您可以声明正常的readdir()
并从内部调用pre&post?前后传递相同的论点?因为您必须将readdir()
声明到fuse\u main()
关于缓冲区的第二件事,它只需要一个字节来存储。您可以向它传递字符数组,或任何包含字节的内容,由表示缓冲区大小的size\u t size
表示。在helloworld.c
中,字符串通过memcpy()
复制到缓冲区。您可以从文件中读取字节,并将它们作为缓冲区和适当的长度一起传递
我是FUSE新手,想知道与标准C相比,使用Java是如何工作的。您可以试试project
该项目使用JNR,因此您可以实现完整的JNI性能和易于实现
一个实现过滤器的示例。我建议使用yes,它看起来很有趣。但到目前为止,我已经切换到满足我所有要求的系统!(虽然C库中仍然缺少一些绑定,但我必须自己绑定它们)+1以获得FUSE Java实现的列表。您的猜测当然是对的,但结果是一样的,这个
javafuse
库似乎根本不可用。。。memcpy()
函数在Java中不可用,因此我们无法提供所需的信息。