Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javafuse有可能工作吗?_Java_Fuse - Fatal编程技术网

javafuse有可能工作吗?

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

我想用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)
{
(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
,而Java
String
应该是不可变的。

我不太清楚,你想用双功能
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中不可用,因此我们无法提供所需的信息。