FUSE:传输端点未连接

FUSE: Transport endpoint is not connected

注意:我读了FUSE error: Transport endpoint is not connected但没有帮助。

我正在使用 FUSE API:https://github.com/libfuse/libfuse

我创建了一个小项目来测试库。 main 看起来像:

(...)
    struct fuse_operations operations;
    operations.open = htsfuse_open;
    operations.read = htsfuse_read;
    operations.release = htsfuse_release;
    operations.readdir = htsfuse_readdir;
    operations.getattr = htsfuse_getattr;

    int ret= fuse_main( argc-1, &argv[1], &operations,NULL );
(...)

我的程序启动时:

sudo fusermount -u tmp_fuse && rm -rf tmp_fuse
mkdir -p tmp_fuse
./htsfuse config.xml ${PWD}/tmp_fuse
ls tmp_fuse
ls: cannot access 'tmp_fuse': Transport endpoint is not connected

我也试过

 sudo umount -l ./tmp_fuse

with/without fusermount 但我遇到了同样的问题。

我的应用启动后,/etc/mtab的最后一行是

test.xml /path/to/tmp_fuse fuse.test.xml rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0

感谢您的帮助。

P.

明白了,缺少一个简单的 memset :-)

struct fuse_operations operations;
memset((void*)&operations,0,sizeof(struct fuse_operations));
operations.open = htsfuse_open;
operations.read = htsfuse_read;