CLOSEFROM(2)              FreeBSD System Calls Manual             CLOSEFROM(2)

NAME

     closefrom, close_range - delete open file descriptors

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <unistd.h>

     void
     closefrom(int lowfd);

     int
     close_range(u_int lowfd, u_int highfd, int flags);

DESCRIPTION

     The closefrom() system call deletes all open file descriptors greater
     than or equal to lowfd from the per-process object reference table.  Any
     errors encountered while closing file descriptors are ignored.

     The close_range() system call deletes all open file descriptors between
     lowfd and highfd inclusive, clamped to the range of open file
     descriptors.  Any errors encountered while closing file descriptors are
     ignored.  Supported flags:

     CLOSE_RANGE_CLOEXEC  Set the close-on-exec flag on descriptors in the
                          range instead of closing them.

     CLOSE_RANGE_CLOFORK  Set the close-on-fork flag on descriptors in the
                          range instead of closing them.

RETURN VALUES

     Upon successful completion, close_range() returns a value of 0.
     Otherwise, a value of -1 is returned and the global variable errno is set
     to indicate the error.

ERRORS

     The close_range() system call will fail if:

     [EINVAL]           The highfd argument is lower than the lowfd argument.

     [EINVAL]           An invalid flag was set.

SEE ALSO

     close(2)

HISTORY

     The closefrom() function first appeared in FreeBSD 8.0.

     The close_range() function first appeared in FreeBSD 12.2.

     The CLOSE_RANGE_CLOFORK flag appeared in FreeBSD 15.0.

FreeBSD 15.1-STABLE-HBSD       October 27, 2025                   CLOSEFROM(2)