Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


dirfd(3p) — Linux manual page

PROLOG |NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |EXAMPLES |APPLICATION USAGE |RATIONALE |FUTURE DIRECTIONS |SEE ALSO |COPYRIGHT

DIRFD(3P)               POSIX Programmer's ManualDIRFD(3P)

PROLOG        top

       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.

NAME        top

       dirfd — extract the file descriptor used by a DIR stream

SYNOPSIS        top

       #include <dirent.h>       int dirfd(DIR *dirp);

DESCRIPTION        top

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

RETURN VALUE        top

       Upon successful completion, thedirfd() function shall return an       integer which contains a file descriptor for the stream pointed to       bydirp.  Otherwise, it shall return -1 and shall seterrno to       indicate the error.

ERRORS        top

       Thedirfd() function may fail if:EINVALThedirp argument does not refer to a valid directory              stream.The following sections are informative.

EXAMPLES        top

       None.

APPLICATION USAGE        top

       Thedirfd() function is intended to be a mechanism by which an       application may obtain a file descriptor to use for thefchdir()       function.

RATIONALE        top

       This interface was introduced because the Base Definitions volume       of POSIX.1‐2017 does not make public theDIRdata structure.       Applications tend to use thefchdir() 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 anfd foropendir() could stillopen() the directory to implement thedirfd() function. Such a       descriptor must be closed later during a call toclosedir().       If it is necessary to allocate anfd to be returned bydirfd(), it       should be done at the time of a call toopendir().

FUTURE DIRECTIONS        top

       None.

SEE ALSO        top

closedir(3p),fchdir(3p),fdopendir(3p),fileno(3p),open(3p),readdir(3p)       The Base Definitions volume of POSIX.1‐2017,dirent.h(0p)

COPYRIGHT        top

       Portions of this text are reprinted and reproduced in electronic       form from IEEE Std 1003.1-2017, Standard for Information       Technology -- Portable Operating System Interface (POSIX), The       Open Group Base Specifications Issue 7, 2018 Edition, Copyright       (C) 2018 by the Institute of Electrical and Electronics Engineers,       Inc and The Open Group.  In the event of any discrepancy between       this version and the original IEEE and The Open Group Standard,       the original IEEE and The Open Group Standard is the referee       document. The original Standard can be obtained online athttp://www.opengroup.org/unix/online.html .       Any typographical or formatting errors that appear in this page       are most likely to have been introduced during the conversion of       the source files to man page format. To report such errors, seehttps://www.kernel.org/doc/man-pages/reporting_bugs.html .IEEE/The Open Group                2017DIRFD(3P)

Pages that refer to this page:dirent.h(0p)closedir(3p)fchdir(3p)fdopendir(3p)fileno(3p)open(3p)readdir(3p)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp