FUSE-Fehler: Transport-Endpunkt ist nicht verbunden

Ich versuche das FUSE-Dateisystem zu implementieren. Ich erhalte diesen Fehler:

kann nicht auf MountDir zugreifen: Transport-Endpunkt ist nicht verbunden

Dies sind die relevanten Teile des Programms. Es gibt zwei Verzeichnisse,MirrorDir undMountDir, die mit demselben Verzeichnis wie der gesamte Code existieren. Ich rufe das Programm so auf:

./myFS -o nonempty -o allow_other MirrorDir MountDir

Kann jemand sehen, was ich falsch mache?

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;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage