DragonFly On-Line Manual Pages
FDESC(5) DragonFly File Formats Manual FDESC(5)
fdesc -- file-descriptor file system
fdesc /dev fdesc rw 0 0
The file-descriptor file system, or fdesc, provides access to the per-
process file descriptor namespace in the global filesystem namespace.
The conventional mount point is /dev and the filesystem should be union
mounted in order to augment, rather than replace, the existing entries in
The contents of the mount point are fd, stderr, stdin, stdout and tty.
fd is a directory whose contents appear as a list of numbered files which
correspond to the open files of the process reading the directory. The
files /dev/fd/0 through /dev/fd/# refer to file descriptors which can be
accessed through the file system. If the file descriptor is open and the
mode the file is being opened with is a subset of the mode of the exist-
ing descriptor, the call:
fd = open("/dev/fd/0", mode);
and the call:
fd = fcntl(0, F_DUPFD, 0);
The files /dev/stdin, /dev/stdout and /dev/stderr appear as symlinks to
the relevant entry in the /dev/fd sub-directory. Opening them is equiva-
lent to the following calls:
fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are
The /dev/tty entry is an indirect reference to the current process's con-
trolling terminal. It appears as a named pipe (FIFO) but behaves in
exactly the same way as the real controlling terminal device.
The fdesc filesystem first appeared in 4.4BSD. The fdesc manual page
first appeared in FreeBSD 2.2.
The fdesc manual page was written by Mike Pritchard <mpp@FreeBSD.org>,
and was based on the mount_fdesc(8) manual page written by Jan-Simon
DragonFly 3.5 December 14, 1996 DragonFly 3.5