|
|
1.1 ! root 1: .TH FCNTL 2 "18 July 1983" ! 2: .UC 4 ! 3: .SH NAME ! 4: fcntl \- file control ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .ft B ! 8: #include <fcntl.h> ! 9: .PP ! 10: .ft B ! 11: res = fcntl(fd, cmd, arg) ! 12: int res; ! 13: int fd, cmd, arg; ! 14: .ft R ! 15: .SH DESCRIPTION ! 16: .I Fcntl ! 17: provides for control over descriptors. ! 18: The argument ! 19: .I fd ! 20: is a descriptor to be operated on by ! 21: .I cmd ! 22: as follows: ! 23: .TP 15 ! 24: F_DUPFD ! 25: Return a new descriptor as follows: ! 26: .IP ! 27: Lowest numbered available descriptor greater than or equal to ! 28: .I arg. ! 29: .IP ! 30: Same object references as the original descriptor. ! 31: .IP ! 32: New descriptor shares the same file pointer if the object ! 33: was a file. ! 34: .IP ! 35: Same access mode (read, write or read/write). ! 36: .IP ! 37: Same file status flags (i.e., both file descriptors ! 38: share the same file status flags). ! 39: .IP ! 40: The close-on-exec flag associated with the new file descriptor ! 41: is set to remain open across ! 42: .IR execv (2) ! 43: system calls. ! 44: .TP 15 ! 45: F_GETFD ! 46: Get the close-on-exec flag associated with the file descriptor ! 47: .IR fd . ! 48: If the low-order bit is 0, the file will remain open across ! 49: .IR exec , ! 50: otherwise the file will be closed upon execution of ! 51: .I exec. ! 52: .TP 15 ! 53: F_SETFD ! 54: Set the close-on-exec flag associated with ! 55: .I fd ! 56: to the low order bit of ! 57: .I arg ! 58: (0 or 1 as above). ! 59: .TP 15 ! 60: F_GETFL ! 61: Get descriptor status flags, as described below. ! 62: .TP 15 ! 63: F_SETFL ! 64: Set descriptor status flags. ! 65: .TP 15 ! 66: F_GETOWN ! 67: Get the process ID or process group ! 68: currently receiving SIGIO and SIGURG ! 69: signals; process groups are returned ! 70: as negative values. ! 71: .TP ! 72: F_SETOWN ! 73: Set the process or process group ! 74: to receive SIGIO and SIGURG signals; ! 75: process groups are specified by supplying ! 76: .I arg ! 77: as negative, otherwise ! 78: .I arg ! 79: is interpreted as a process ID. ! 80: .LP ! 81: The flags for the F_GETFL and F_SETFL flags are as follows: ! 82: .TP 15 ! 83: FNDELAY ! 84: Non-blocking I/O; if no data is available to a ! 85: .I read ! 86: call, or if a write operation would block, ! 87: the call returns -1 with the error EWOULDBLOCK. ! 88: .TP ! 89: FAPPEND ! 90: Force each write to append at the end of file; ! 91: corresponds to the O_APPEND flag of ! 92: .IR open (2). ! 93: .TP ! 94: FASYNC ! 95: Enable the SIGIO signal to be sent to the process group ! 96: when I/O is possible, e.g. ! 97: upon availability of data to be read. ! 98: .SH "RETURN VALUE ! 99: Upon successful completion, the value returned depends on ! 100: .I cmd ! 101: as follows: ! 102: .sp .5v ! 103: .nf ! 104: .ta .25i 1.25i ! 105: F_DUPFD A new file descriptor. ! 106: F_GETFD Value of flag (only the low-order bit is defined). ! 107: F_GETFL Value of flags. ! 108: F_GETOWN Value of file descriptor owner. ! 109: other Value other than \-1. ! 110: .fi ! 111: .sp .5v ! 112: Otherwise, a value of \-1 is returned and ! 113: .I errno ! 114: is set to indicate the error. ! 115: .SH ERRORS ! 116: .I Fcntl ! 117: will fail if one or more of the following are true: ! 118: .TP 15 ! 119: [EBADF] ! 120: .I Fildes ! 121: is not a valid open file descriptor. ! 122: .TP 15 ! 123: [EMFILE] ! 124: .I Cmd ! 125: is F_DUPFD and the maximum allowed number of file descriptors are currently ! 126: open. ! 127: .TP 15 ! 128: [EINVAL] ! 129: .I Cmd ! 130: is F_DUPFD and ! 131: .I arg ! 132: is negative or greater the maximum allowable number ! 133: (see ! 134: .IR getdtablesize (2)). ! 135: .SH "SEE ALSO ! 136: close(2), execve(2), getdtablesize(2), open(2), sigvec(2) ! 137: .SH BUGS ! 138: The asynchronous I/O facilities of FNDELAY and FASYNC ! 139: are currently available only for tty operations. ! 140: No SIGIO signal is sent upon draining of output sufficiently ! 141: for non-blocking writes to occur.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.