我試圖實現FUSE文件系統。我收到此錯誤:FUSE錯誤:傳輸端點未連接
cannot access MountDir: Transport endpoint is not connected
這是程序的相關部分。有兩個目錄,MirrorDir
和MountDir
,與所有代碼存在相同的目錄。我打電話給這樣的程序:
./myFS -o nonempty -o allow_other MirrorDir MountDir
任何人都可以看到我在做什麼錯?
static struct fuse_operations xmp_oper = {
.getattr = xmp_getattr,
.readdir = xmp_readdir,
.open = xmp_open,
.read = xmp_read,
};
int main(int argc, char *argv[]) {
int fuse_stat;
char* mirrorDir;
mirrorDir = malloc(sizeof(strlen(argv[argc-2]+1)));
if (mirrorDir == NULL) {
perror("main calloc");
abort();
}
// Pull the rootdir out of the argument list and save it in my internal data
mirrorDir = realpath(argv[argc-2], NULL);
argv[argc-2] = argv[argc-1];
argv[argc-1] = NULL;
argc--;
// turn over control to fuse
fprintf(stderr, "about to call fuse_main\n");
fuse_stat = fuse_main(argc, argv, &xmp_oper, mirrorDir);
fprintf(stderr, "fuse_main returned %d\n", fuse_stat);
return fuse_stat;
}
我不得不sudo umount才能正常工作。 fusermount給了我:在/ etc/mtab中找不到的條目 –
'fusermount -u'在我的情況下不起作用,所以我嘗試了'sudo umount -l'但是我得到這個錯誤信息:'umount:MOUNT_DIR:block devices不允許fs'任何想法? –
同樣,這是第二個爲我工作的建議。如Tanner的答案所示, – otocan