Provided by: manpages-dev_6.16-1_all bug

NAME

       F_GETFD, F_SETFD - get/set file descriptor flags

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #include <fcntl.h>

       int fcntl(int fd, F_GETFD);
       int fcntl(int fd, F_SETFD, int arg);

DESCRIPTION

       These  operations  manipulate the flags associated with a file descriptor.  Currently, only one such flag
       is defined: FD_CLOEXEC, the close-on-exec flag.  If the FD_CLOEXEC bit is set, the file  descriptor  will
       automatically  be  closed during a successful execve(2).  (If the execve(2) fails, the file descriptor is
       left open.)  If the FD_CLOEXEC bit is not set, the file descriptor will remain open across an execve(2).

       F_GETFD
              Return (as the function result) the file descriptor flags; arg is ignored.

       F_SETFD
              Set the file descriptor flags to the value specified by arg.

RETURN VALUE

       F_GETFD
              Value of file descriptor flags.

       F_SETFD
              Zero.

       On error, -1 is returned, and errno is set to indicate the error.

ERRORS

       See fcntl(2).

STANDARDS

       POSIX.1-2024.

HISTORY

       SVr4, 4.3BSD, POSIX.1-2001.

CAVEATS

       In multithreaded programs, using fcntl(2) F_SETFD to set the close-on-exec  flag  at  the  same  time  as
       another  thread  performs  a  fork(2)  plus  execve(2)  is  vulnerable  to  a  race  condition  that  may
       unintentionally leak the file descriptor  to  the  program  executed  in  the  child  process.   See  the
       discussion of the O_CLOEXEC flag in open(2) for details and a remedy to the problem.

SEE ALSO

       fcntl(2)

Linux man-pages 6.16                               2025-10-29                                    F_GETFD(2const)