What does the FD column of pipes listed by lsof mean?

William picture William · Aug 5, 2014 · Viewed 21.2k times · Source

I'm using the following command to get a list of pipes:

lsof | grep PIPE 

I want to know what the values of the FD column mean (the 5th one http://i.imgur.com/KHczptf.png). I think that r and w mean read and write, respectively, but what does the number which follows each of these chars means?


I know that FD means File Descriptor, what I want to figure out is what means the values shown in the column, like the 3r, 16w, 20r, etc.

Answer

konsolebox picture konsolebox · Aug 5, 2014

Files are not only opened as streams. Some of those are listed in lsof's manual:

FD    is the File Descriptor number of the file or:

           cwd  current working directory;
           Lnn  library references (AIX);
           err  FD information error (see NAME column);
           jld  jail directory (FreeBSD);
           ltx  shared library text (code and data);
           Mxx  hex memory-mapped type number xx.
           m86  DOS Merge mapped file;
           mem  memory-mapped file;
           mmap memory-mapped device;
           pd   parent directory;
           rtd  root directory;
           tr   kernel trace file (OpenBSD);
           txt  program text (code and data);
           v86  VP/ix mapped file;

      FD  is  followed  by one of these characters, describing the
      mode under which the file is open:

           r for read access;
           w for write access;
           u for read and write access;
           space if mode unknown and no lock
            character follows;
           '-' if mode unknown and lock
            character follows.

      The mode character is followed by one of these lock  charac-
      ters, describing the type of lock applied to the file:

           N for a Solaris NFS lock of unknown type;
           r for read lock on part of the file;
           R for a read lock on the entire file;
           w for a write lock on part of the file;
           W for a write lock on the entire file;
           u for a read and write lock of any length;
           U for a lock of unknown type;
           x  for an SCO OpenServer Xenix lock on part  of the
      file;
           X for an SCO OpenServer Xenix lock on  the   entire
      file;
           space if there is no lock.

      See  the  LOCKS  section  for  more  information on the lock
      information character.

      The FD column contents constitutes a single field for  pars-
      ing in post-processing scripts.