logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface

Application Usage

       The dirfd() function is intended to be a mechanism by which an application may obtain a  file  descriptor
       to use for the fchdir() function.

Description

       The dirfd() function shall return a file descriptor referring to the same directory as the dirp argument.
       This  file  descriptor shall be closed by a call to closedir().  If any attempt is made to close the file
       descriptor, or to modify the state of the associated description, other  than  by  means  of  closedir(),
       readdir(), readdir_r(), rewinddir(), or seekdir(), the behavior is undefined.

Errors

       The dirfd() function may fail if:

       EINVAL The dirp argument does not refer to a valid directory stream.

       Thefollowingsectionsareinformative.

Examples

       None.

Future Directions

       None.

Name

       dirfd — extract the file descriptor used by a DIR stream

Prolog

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

Rationale

       This  interface  was  introduced because the Base Definitions volume of POSIX.1‐2017 does not make public
       the DIR data structure. Applications tend to use the fchdir() function on the file descriptor returned by
       this interface, and this has proven useful for security reasons; in particular, it is a better  technique
       than others where directory names might change.

       The  description uses the term ``a file descriptor'' rather than ``the file descriptor''. The implication
       intended is that an implementation that does not use an fd for opendir() could still open() the directory
       to implement the dirfd() function. Such a descriptor must be closed later during a call to closedir().

       If it is necessary to allocate an fd to be returned by dirfd(), it should be done at the time of  a  call
       to opendir().

Return Value

       Upon successful completion, the dirfd() function shall return an integer which contains a file descriptor
       for  the  stream  pointed  to by dirp.  Otherwise, it shall return -1 and shall set errno to indicate the
       error.

See Also

closedir(), fchdir(), fdopendir(), fileno(), open(), readdir()

       The Base Definitions volume of POSIX.1‐2017, <dirent.h>

Synopsis

       #include <dirent.h>

       int dirfd(DIR *dirp);

See Also