Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FDESCFS(5)		      File Formats Manual		    FDESCFS(5)

NAME
       fdescfs -- file-descriptor file system

SYNOPSIS
       fdescfs /dev/fd fdescfs rw 0 0

DESCRIPTION
       The  file-descriptor  file  system,  or fdescfs,	provides access	to the
       per-process file	descriptor namespace in	the global file	 system	 name-
       space.  The conventional	mount point is /dev/fd.

       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 filesys-
       tem:

       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  par-
		 ticular, 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 de-
       scriptor	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	refer-
       encing 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  de-
       scriptors opened	by the process.

FILES
       /dev/fd/#

EXAMPLES
       To mount	a fdescfs volume located on /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

SEE ALSO
       devfs(5), mount(8)

HISTORY
       The  fdescfs  file system first appeared	in 4.4BSD.  The	fdescfs	manual
       page first appeared in FreeBSD 2.2.

AUTHORS
       The   fdescfs   manual	page   was   written   by    Mike    Pritchard
       <mpp@FreeBSD.org>,  and	was  based  on	the  manual  page  written  by
       Jan-Simon Pendry.

FreeBSD	13.2			 Jul 11, 2023			    FDESCFS(5)

NAME | SYNOPSIS | DESCRIPTION | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fdescfs&sektion=5&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help