printcap: use temporary directory, not file
authorNikolaus Rath <Nikolaus@rath.org>
Thu, 24 Aug 2017 19:47:38 +0000 (21:47 +0200)
committerNikolaus Rath <Nikolaus@rath.org>
Thu, 24 Aug 2017 19:56:00 +0000 (21:56 +0200)
Mounting a file doesn't seem to work under FreeBSD.

example/printcap.c

index 218b526b736d8fb23ef86245543206334d2492f9..77dea1468d8d0c65e721a0ddd28babf320a29e98 100644 (file)
@@ -90,12 +90,10 @@ int main(int argc, char **argv)
        struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
        char *mountpoint;
        int ret = -1;
-       int fd;
 
        mountpoint = strdup("/tmp/fuse_printcap_XXXXXX");
-       fd = mkstemp(mountpoint);
-       if(fd == -1) {
-               perror("mkstemp");
+       if(mkdtemp(mountpoint) == NULL) {
+               perror("mkdtemp");
                return 1;
        }
        
@@ -121,8 +119,7 @@ err_out3:
 err_out2:
        fuse_session_destroy(se);
 err_out1:
-       close(fd);
-       unlink(mountpoint);
+       rmdir(mountpoint);
        free(mountpoint);
        fuse_opt_free_args(&args);