FDESC(5) BSD File Formats Manual FDESC(5)NAMEfdesc — file-descriptor file system
SYNOPSISfdesc /dev fdesc rw 0 0
DESCRIPTION
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
/dev.
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);
are equivalent.
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
ignored.
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.
FILES
/dev/fd/#
/dev/stdin
/dev/stdout
/dev/stderr
/dev/tty
SEE ALSOtty(4), mount_fdesc(8)HISTORY
The fdesc filesystem first appeared in 4.4BSD. The fdesc manual page
first appeared in FreeBSD 2.2.
AUTHORS
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
Pendry.
BSD December 14, 1996 BSD