READDIR(2)                (2019-03-06)                 READDIR(2)

     NAME
          readdir - read directory entry

     SYNOPSIS
          int readdir(unsigned int fd, struct old_linux_dirent *dirp,
                      unsigned int count);

          Note: There is no glibc wrapper for this system call; see
          NOTES.

     DESCRIPTION
          This is not the function you are interested in.  Look at
          readdir(3) for the POSIX conforming C library interface.
          This page documents the bare kernel system call interface,
          which is superseded by getdents(2).

          readdir() reads one old_linux_dirent structure from the
          directory referred to by the file descriptor fd into the
          buffer pointed to by dirp. The argument count is ignored; at
          most one old_linux_dirent structure is read.

          The old_linux_dirent structure is declared (privately in
          Linux kernel file fs/readdir.c) as follows:

              struct old_linux_dirent {
                  unsigned long d_ino;     /* inode number */
                  unsigned long d_offset;  /* offset to this old_linux_dirent */
                  unsigned short d_namlen; /* length of this d_name */
                  char  d_name[1];         /* filename (null-terminated) */
              }

          d_ino is an inode number.  d_offset is the distance from the
          start of the directory to this old_linux_dirent. d_reclen is
          the size of d_name, not counting the terminating null byte
          (aq\0aq).  d_name is a null-terminated filename.

     RETURN VALUE
          On success, 1 is returned.  On end of directory, 0 is
          returned.  On error, -1 is returned, and errno is set appro-
          priately.

     ERRORS
          EBADF
               Invalid file descriptor fd.

          EFAULT
               Argument points outside the calling process's address
               space.

          EINVAL

     Page 1                        Linux             (printed 5/22/22)

     READDIR(2)                (2019-03-06)                 READDIR(2)

               Result buffer is too small.

          ENOENT
               No such directory.

          ENOTDIR
               File descriptor does not refer to a directory.

     CONFORMING TO
          This system call is Linux-specific.

     NOTES
          Glibc does not provide a wrapper for this system call; call
          it using syscall(2).  You will need to define the
          old_linux_dirent structure yourself.  However, probably you
          should use readdir(3) instead.

          This system call does not exist on x86-64.

     SEE ALSO
          getdents(2), readdir(3)

     COLOPHON
          This page is part of release 5.10 of the Linux man-pages
          project.  A description of the project, information about
          reporting bugs, and the latest version of this page, can be
          found at https://www.kernel.org/doc/man-pages/.

     Page 2                        Linux             (printed 5/22/22)