home *** CD-ROM | disk | FTP | other *** search
-
- FCNTL(2) UNIX Programmer's Manual FCNTL(2)
-
- NNAAMMEE
- ffccnnttll - file control
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ffccnnttll..hh>>
-
- _i_n_t
- ffccnnttll(_i_n_t _f_d, _i_n_t _c_m_d, _i_n_t _a_r_g)
-
- DDEESSCCRRIIPPTTIIOONN
- FFccnnttll() provides for control over descriptors. The argument _f_d is a de
- scriptor to be operated on by _c_m_d as follows:
-
- F_DUPFD Return a new descriptor as follows:
-
- oo Lowest numbered available descriptor greater than or
- equal to _a_r_g.
- oo Same object references as the original descriptor.
- oo New descriptor shares the same file offset if the ob
- ject was a file.
- oo Same access mode (read, write or read/write).
- oo Same file status flags (i.e., both file descriptors
- share the same file status flags).
- oo The closeonexec flag associated with the new file
- descriptor is set to remain open across execv(2) sys
- tem calls.
-
- F_GETFD Get the closeonexec flag associated with the file descriptor
- _f_d. If the loworder bit of the returned value is 0, the file
- will remain open across eexxeecc(), otherwise the file will be
- closed upon execution of eexxeecc() (_a_r_g is ignored).
-
- F_SETFD Set the closeonexec 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 (_a_r_g is ig
- nored).
-
- F_SETFL Set descriptor status flags to _a_r_g.
-
- F_GETOWN Get the process ID or process group currently receiving SIGIO
- and SIGURG signals; process groups are returned as negative
- values (_a_r_g is ignored).
-
- F_SETOWN Set the process or process group to receive SIGIO and SIGURG
- signals; process groups are specified by supplying _a_r_g as neg
- ative, otherwise _a_r_g is interpreted as a process ID.
-
- The flags for the F_GETFL and F_SETFL flags are as follows:
-
- O_NDELAY Nonblocking I/O; if no data is available to a read call, or
- if a write operation would block, the read or write call re
- turns 1 with the error EWOULDBLOCK.
-
- O_APPEND Force each write to append at the end of file; corresponds to
- the O_APPEND flag of open(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.
-
- RREETTUURRNN VVAALLUUEESS
- 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 loworder 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 er
- ror.
-
- EERRRROORRSS
- FFccnnttll() will fail if:
-
- [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 de
- scriptors are currently open.
-
- [EINVAL] _C_m_d is F_DUPFD and _a_r_g is negative or greater than the max
- imum allowable number (see getdtablesize(2)).
-
- [ESRCH] _C_m_d is F_SETOWN and the process ID given as argument is not
- in use.
-
- SSEEEE AALLSSOO
- close(2), execve(2), getdtablesize(2), open(2), sigvec(2)
-
- BBUUGGSS
- The asynchronous I/O facilities of FNDELAY and FASYNC are currently
- available only for tty and socket operations.
-
- HHIISSTTOORRYY
- The ffccnnttll function call appeared in 4.2BSD.
-
- 4.2 Berkeley Distribution March 10, 1991 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-