FUSE_SETUP(3) | Library Functions Manual | FUSE_SETUP(3)

# NAME

`fuse_setup` — FUSE helper function

# SYNOPSIS

library “libfuse”
`#include <fuse.h>`

struct fuse *
`fuse_setup`(int argc, char **argv, const struct fuse_operations *ops, size_t size, char **mp, int *mt, void *data);

# DESCRIPTION

`fuse_setup`() is a helper function that mounts a FUSE file system, creates a new FUSE session and installs signal handlers that will try to unmount the file system on `SIGINT`, `SIGTERM`, or `SIGHUP`.

`fuse_setup`() parses the arguments specified by argv, and if neither the `-f`, `-d`, or `-odebug` options were specified, detaches from the controlling terminal and runs in the background. On success, mt is set to 1 if the file system operations will be invoked in parallel (multi-threaded) or to 0 if file system operations are serialized. File systems that do not support multi-threaded operation must include the `-s` argument in argv. OpenBSD does not currently support multi-threaded operation.

The file system will be mounted on mp, which is the directory specified by the first argument that does not match one of the options recognised by fuse_parse_cmdline(3).

fuse_operations is a struct of size size that contains pointers to FUSE file system operations. See fuse_new(3).

# RETURN VALUES

`fuse_setup`() returns `NULL` on failure.

# SEE ALSO

fuse_main(3), fuse_mount(3), fuse_new(3), fuse_parse_cmdline(3), fuse_set_signal_handlers(3), fuse_teardown(3), fuse(4)

# STANDARDS

The `fuse_setup`() function conforms to FUSE 2.6.

# HISTORY

The `fuse_setup`() function first appeared in OpenBSD 5.4.

# AUTHORS

Sylvestre Gallon <ccna.syl@gmail.com>
Helg Bredow <helg@openbsd.org>

September 23, 2025 | Debian