| Main index | Section 5 | 日本語 | Options |
fdescfs /dev/fd fdescfs rw 0 0
The file system's 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.
The following mount options can be used when mounting fdescfs filesystem:
| nodup | For file descriptors referencing vnodes, instead of the dup(2) semantic described above, implement re-opening of the referenced vnode. See below for more details. |
| linrdlnk | |
| Report the type of the fdescfs vnode as VLNK instead of FreeBSD traditional VCHR. For linux(4) ABI compatibility mount fdescfs volume with the linrdlnk option. | |
| rdlnk | Treat fdescfs vnodes as symbolic links consistently, in particular, follow the resolved name for the name lookups. This option is strictly stronger than the linrdlnk option, it changes not only the type returned by stat(2), but also causes the fdescfs files to behave as symlinks. |
For fdescfs mounted without the nodup mount option, 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:
fd = open("/dev/fd/0", mode);
and the call:
fd = fcntl(0, F_DUPFD, 0);
are equivalent. Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are ignored.
For fdescfs mounted with the nodup option, and file descriptor referencing a vnode, the call:
fd = open("/dev/fd/0", mode);
reopens the referenced vnode with the specified mode. In other words, the open() call above is equivalent to
fd = openat(0, "", O_EMPTY_PATH, mode);
In particular, if the file descriptor was opened with the O_PATH flag, then either O_EMPTY_PATH or open() over fdescfs mount with nodup option allows one to convert it to a regularly opened file, assuming that the current permissions allow the requested mode.
Note: /dev/fd/0, /dev/fd/1 and /dev/fd/2 files are created by default when devfs alone is mounted. fdescfs creates entries for all file descriptors opened by the process.
| /dev/fd/# | |
mount -t fdescfs none /dev/fd
For linux(4) ABI compatibility:
mount -t fdescfs -o linrdlnk none /compat/linux/dev/fd
For substitute of O_EMPTY_PATH flag use:
mount -t fdescfs -o nodup none /dev/fdpath
| FDESCFS (5) | Jul 11, 2023 |
| Main index | Section 5 | 日本語 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what's wrong.” | ” |