Yolinux.com

DIRFD manpage

Search topic Section


DIRFD(3)		   Linux Programmer's Manual		      DIRFD(3)



NAME
       dirfd - get directory stream file descriptor

SYNOPSIS
       #include <sys/types.h>
       #include <dirent.h>

       int dirfd(DIR *dirp);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       dirfd():
	   /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200809L
	       || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION
       The  function  dirfd()  returns the file descriptor associated with the
       directory stream dirp.

       This file descriptor is	the  one  used	internally  by	the  directory
       stream.	 As  a	result,	 it  is useful only for functions which do not
       depend on or alter the file position, such as fstat(2)  and  fchdir(2).
       It will be automatically closed when closedir(3) is called.

RETURN VALUE
       On success, a nonnegative file descriptor is returned.  On error, -1 is
       returned, and errno is set to indicate the cause of the error.

ERRORS
       POSIX.1-2008 specifies two errors, neither of which is returned by  the
       current implementation.

       EINVAL dirp does not refer to a valid directory stream.

       ENOTSUP
	      The  implementation  does	 not support the association of a file
	      descriptor with a directory.

ATTRIBUTES
       For  an	explanation  of	 the  terms  used   in	 this	section,   see
       attributes(7).

       +----------+---------------+---------+
       |Interface | Attribute	  | Value   |
       +----------+---------------+---------+
       |dirfd()	  | Thread safety | MT-Safe |
       +----------+---------------+---------+
CONFORMING TO
       POSIX.1-2008.   This  function  was a BSD extension, present in 4.3BSD-
       Reno, not in 4.2BSD.

SEE ALSO
       open(2), closedir(3), opendir(3), readdir(3), rewinddir(3), scandir(3),
       seekdir(3), telldir(3)

COLOPHON
       This  page  is  part of release 4.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/.



Linux				  2016-03-15			      DIRFD(3)