.\" Copyright (c) 1992 The Regents of the University of California
.\" Copyright (c) 1990, 1992 Jan-Simon Pendry
.\" This code is derived from software donated to Berkeley by
.\" %sccs.include.redist.roff%
.\" @(#)mount_fdesc.8 5.3 (Berkeley) %G%
.Nd mount the file-descriptor file system
command attaches an instance of the per-process file descriptor
namespace to the global filesystem namespace.
The conventional mount point is
and the filesystem should be union mounted in order to augment,
rather than replace, the existing entries in
This command is normally executed by
The contents of the mount point are
is a directory whose contents
appear as a list of numbered files
which correspond to the open files of the process reading the
refer to file descriptors which can be accessed through the file
If the file descriptor is open and the mode the file is being opened
with is a subset of the mode of the existing descriptor, the call:
.Bd -literal -offset indent
fd = open("/dev/fd/0", mode);
.Bd -literal -offset indent
fd = fcntl(0, F_DUPFD, 0);
appear as symlinks to the relevant entry in the
Opening them is equivalent to the following calls:
.Bd -literal -offset indent
fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
entry is an indirect reference to the current process's controlling terminal.
It appears as a named pipe (FIFO) but behaves in exactly the same way as
the real controlling terminal device.
.Bl -tag -width /dev/stderr -compact
entries appear when listing the contents of the
This makes sense in the context of this filesystem, but is inconsistent
with usual filesystem conventions.
However, it is still possible to refer to both
This filesystem may not be NFS-exported.