Provided by: manpages_6.9.1-1_all bug

NAME

       /proc/pid/fdinfo/ - information about file descriptors

DESCRIPTION

       /proc/pid/fdinfo/ (since Linux 2.6.22)
              This is a subdirectory containing one entry for each file which the process has open, named by its
              file  descriptor.  The files in this directory are readable only by the owner of the process.  The
              contents of each file can be read to obtain information about the corresponding  file  descriptor.
              The content depends on the type of file referred to by the corresponding file descriptor.

              For regular files and directories, we see something like:

                  $ cat /proc/12015/fdinfo/4
                  pos:    1000
                  flags:  01002002
                  mnt_id: 21

              The fields are as follows:

              pos    This is a decimal number showing the file offset.

              flags  This  is  an  octal  number  that  displays the file access mode and file status flags (see
                     open(2)).  If the close-on-exec file descriptor flag is set, then flags will  also  include
                     the value O_CLOEXEC.

                     Before Linux 3.1, this field incorrectly displayed the setting of O_CLOEXEC at the time the
                     file was opened, rather than the current setting of the close-on-exec flag.

              mnt_id This field, present since Linux 3.15, is the ID of the mount containing this file.  See the
                     description of /proc/pid/mountinfo.

              For eventfd file descriptors (see eventfd(2)), we see (since Linux 3.8) the following fields:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  eventfd-count:               40

              eventfd-count is the current value of the eventfd counter, in hexadecimal.

              For epoll file descriptors (see epoll(7)), we see (since Linux 3.8) the following fields:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  tfd:        9 events:       19 data: 74253d2500000009
                  tfd:        7 events:       19 data: 74253d2500000007

              Each  of  the  lines  beginning  tfd describes one of the file descriptors being monitored via the
              epoll file descriptor (see epoll_ctl(2) for some details).  The tfd field is  the  number  of  the
              file  descriptor.   The  events field is a hexadecimal mask of the events being monitored for this
              file descriptor.  The data field is the data value associated with this file descriptor.

              For signalfd file descriptors (see signalfd(2)), we see (since Linux 3.8) the following fields:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  sigmask:  0000000000000006

              sigmask is the hexadecimal mask of signals that are accepted via this  signalfd  file  descriptor.
              (In  this  example,  bits  2  and  3 are set, corresponding to the signals SIGINT and SIGQUIT; see
              signal(7).)

              For inotify file descriptors (see inotify(7)), we see (since Linux 3.8) the following fields:

                  pos: 0
                  flags:    00
                  mnt_id:   11
                  inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:2af87e00220ffd73
                  inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:27261900802dfd73

              Each of the lines beginning with "inotify" displays information about one file or  directory  that
              is being monitored.  The fields in this line are as follows:

              wd     A watch descriptor number (in decimal).

              ino    The inode number of the target file (in hexadecimal).

              sdev   The ID of the device where the target file resides (in hexadecimal).

              mask   The mask of events being monitored for the target file (in hexadecimal).

              If  the  kernel  was built with exportfs support, the path to the target file is exposed as a file
              handle, via three hexadecimal fields: fhandle-bytes, fhandle-type, and f_handle.

              For fanotify file descriptors (see fanotify(7)), we see (since Linux 3.8) the following fields:

                  pos: 0
                  flags:    02
                  mnt_id:   11
                  fanotify flags:0 event-flags:88002
                  fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:4f261900a82dfd73

              The  fourth  line  displays  information  defined  when  the  fanotify  group  was   created   via
              fanotify_init(2):

              flags  The flags argument given to fanotify_init(2) (expressed in hexadecimal).

              event-flags
                     The event_f_flags argument given to fanotify_init(2) (expressed in hexadecimal).

              Each additional line shown in the file contains information about one of the marks in the fanotify
              group.  Most of these fields are as for inotify, except:

              mflags The flags associated with the mark (expressed in hexadecimal).

              mask   The events mask for this mark (expressed in hexadecimal).

              ignored_mask
                     The mask of events that are ignored for this mark (expressed in hexadecimal).

              For details on these fields, see fanotify_mark(2).

              For timerfd file descriptors (see timerfd(2)), we see (since Linux 3.17) the following fields:

                  pos:    0
                  flags:  02004002
                  mnt_id: 13
                  clockid: 0
                  ticks: 0
                  settime flags: 03
                  it_value: (7695568592, 640020877)
                  it_interval: (0, 0)

              clockid
                     This  is  the  numeric value of the clock ID (corresponding to one of the CLOCK_* constants
                     defined via <time.h>) that is used to mark the progress of the timer (in this example, 0 is
                     CLOCK_REALTIME).

              ticks  This is the number of timer expirations that have occurred, (i.e., the value  that  read(2)
                     on it would return).

              settime flags
                     This  field lists the flags with which the timerfd was last armed (see timerfd_settime(2)),
                     in octal (in this example, both TFD_TIMER_ABSTIME and TFD_TIMER_CANCEL_ON_SET are set).

              it_value
                     This field contains the amount of time until the  timer  will  next  expire,  expressed  in
                     seconds  and  nanoseconds.   This  is  always  expressed as a relative value, regardless of
                     whether the timer was created using the TFD_TIMER_ABSTIME flag.

              it_interval
                     This field contains the interval of the timer, in seconds and nanoseconds.   (The  it_value
                     and  it_interval  fields contain the values that timerfd_gettime(2) on this file descriptor
                     would return.)

SEE ALSO

       proc(5)

Linux man-pages 6.9.1                              2024-05-02                                 proc_pid_fdinfo(5)