2.11BSD/man/cat2/fcntl.0

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 11/26/99	  Nov 30, 1994				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:

     O_NONBLOCK     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.

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

     O_ASYNC	    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:
       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.
     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 11/26/99	  Nov 30, 1994				2






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



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




















































Printed 11/26/99	  Nov 30, 1994				3