4.3BSD-UWisc/man/cat2/fcntl.2

Compare this file to the similar file:
Show the results in this format:




FCNTL(2)            UNIX Programmer's Manual             FCNTL(2)



NAME
     fcntl - file control

SYNOPSIS
     #include <fcntl.h>

     res = fcntl(fd, cmd, arg)
     int res;
     int fd, cmd, arg;

DESCRIPTION
     _F_c_n_t_l provides for control over descriptors.  The argument
     _f_d is a descriptor to be operated on by _c_m_d as follows:

     F_DUPFD        Return a new descriptor as follows:

                    Lowest numbered available descriptor greater
                    than or equal to _a_r_g.

                    Same object references as the original
                    descriptor.

                    New descriptor shares the same file pointer
                    if the object was a file.

                    Same access mode (read, write or read/write).

                    Same file status flags (i.e., both file
                    descriptors share the same file status
                    flags).

                    The close-on-exec flag associated with the
                    new file descriptor is set to remain open
                    across _e_x_e_c_v(2) system calls.

     F_GETFD        Get the close-on-exec flag associated with
                    the file descriptor _f_d.  If the low-order bit
                    is 0, the file will remain open across _e_x_e_c,
                    otherwise the file will be closed upon execu-
                    tion of _e_x_e_c.

     F_SETFD        Set the close-on-exec flag associated with _f_d
                    to the low order bit of _a_r_g (0 or 1 as
                    above).

     F_GETFL        Get descriptor status flags, as described
                    below.

     F_SETFL        Set descriptor status flags.

     F_GETOWN       Get the process ID or process group currently
                    receiving SIGIO and SIGURG signals; process



Printed 12/27/86          May 22, 1986                          1






FCNTL(2)            UNIX Programmer's Manual             FCNTL(2)



                    groups are returned as negative values.

     F_SETOWN       Set the process or process group to receive
                    SIGIO and SIGURG signals; process groups are
                    specified by supplying _a_r_g as negative, oth-
                    erwise _a_r_g is interpreted as a process ID.

     The flags for the F_GETFL and F_SETFL flags are as follows:

     FNDELAY        Non-blocking I/O; if no data is available to
                    a _r_e_a_d call, or if a write operation would
                    block, the call returns -1 with the error
                    EWOULDBLOCK.

     FAPPEND        Force each write to append at the end of
                    file; corresponds to the O_APPEND flag of
                    _o_p_e_n(2).

     FASYNC         Enable the SIGIO signal to be sent to the
                    process group when I/O is possible, e.g.,
                    upon availability of data to be read.

RETURN VALUE
     Upon successful completion, the value returned depends on
     _c_m_d as follows:
9       F_DUPFD   A new file descriptor.
       F_GETFD   Value of flag (only the low-order bit is defined).
       F_GETFL   Value of flags.
       F_GETOWN  Value of file descriptor owner.
       other     Value other than -1.
9     Otherwise, a value of -1 is returned and _e_r_r_n_o is set to
     indicate the error.

ERRORS
     _F_c_n_t_l will fail if one or more of the following are true:

     [EBADF]        _F_i_l_d_e_s is not a valid open file descriptor.

     [EMFILE]       _C_m_d is F_DUPFD and the maximum allowed number
                    of file descriptors are currently open.

     [EINVAL]       _C_m_d is F_DUPFD and _a_r_g is negative or greater
                    than the maximum allowable number (see
                    _g_e_t_d_t_a_b_l_e_s_i_z_e(2)).

     [ESRCH]        _C_m_d is F_SETOWN and the process ID given as
                    argument is not in use.

SEE ALSO
     close(2), execve(2), getdtablesize(2), open(2), sigvec(2)




Printed 12/27/86          May 22, 1986                          2






FCNTL(2)            UNIX Programmer's Manual             FCNTL(2)



BUGS
     The asynchronous I/O facilities of FNDELAY and FASYNC are
     currently available only for tty and socket operations.




















































Printed 12/27/86          May 22, 1986                          3