Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fcntl(2) — UTek W2.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

execve(2)

getdtablesize(2)

open(2)

sigvec(2)

execl(3c)



FCNTL(2)                COMMAND REFERENCE                FCNTL(2)



NAME
     fcntl - file control

SYNOPSIS
     #include <fcntl.h>

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

DESCRIPTION
     Fcntl provides for control over open descriptors.  The
     argument fd is an open descriptor.  The value of result and
     arg depends on cmd; see below.  Cmd is one of the following,
     defined in <fcntl.h>:

     F_DUPFD
         Return a new descriptor as follows:

         Lowest numbered available descriptor greater than or
         equal to arg.

         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 execve(2) system
         calls.

     F_GETFD
         Get the close-on-exec flag associated with the file
         descriptor fd.  If the low-order bit is 0, the file will
         remain open across execve calls, otherwise the file will
         be closed upon execution of execve calls.

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

     F_GETFL
         Get descriptor status flags, as described below.

     F_SETFL
         Set descriptor status flags to arg. Arg is created by
         or'ing FNDELAY, FAPPEND and FASYNC; see below.



Printed 10/17/86                                                1





FCNTL(2)                COMMAND REFERENCE                FCNTL(2)



     F_GETOWN
         Get the process group currently receiving SIGIO and
         SIGURG signals; process groups are returned as negative
         values.

     F_SETOWN
         Set the process group to receive SIGIO and SIGURG
         signals.  If arg is negative, it is interpreted as a
         process group number.  If arg is positive, it is
         interpreted as a process ID and the associated process
         group is used.

     The flags for the F_GETFL and F_SETFL flags are as follows,
     defined in <sys/file.h>:

     FNDELAY
         Non-blocking I/O; if no data is available to a read
         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 open(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) and enable the SIGURG signal to be sent when an
         exception occurs.

DIAGNOSTICS
     Fcntl will fail if one or more of the following are true:

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

     [EINVAL]
         Cmd or arg is an invalid value.

     [EMFILE]
         Cmd is F_DUPFD and NOFILE (defined in <sys/max.h>) file
         descriptors are currently open.

     [EINVAL]
         Cmd is F_DUPFD and arg is negative or greater than
         NOFILE (defined in <sys/max.h>) (see getdtablesize(2)).

     [EINVAL]
         Cmd is F_SETOWN and arg is not a valid process ID.

     [ENOTTY]
         Cmd is not a valid request for the type of object



Printed 10/17/86                                                2





FCNTL(2)                COMMAND REFERENCE                FCNTL(2)



         associated with fd.

     [ENXIO]
         Cmd was attempted on a special device which does not
         exist, or beyond the limits of the device.

     [EIO]
         An I/O error occurred while accessing the file system.

     [ENODEV]
         Fd is a device, and cmd is an inappropriate request for
         that device.

RETURN VALUE
     Upon successful completion, the value returned depends on
     cmd 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, or'd together.
       F_GETOWN  Value of file descriptor owner.
       other     Value other than -1.

     Otherwise, a value of -1 is returned and errno is set to
     indicate the error.

CAVEATS
     The asynchronous I/O facilities of FNDELAY and FASYNC are
     currently available only for tty operations.  No SIGIO
     signal is sent upon draining of output sufficiently for
     non-blocking writes to occur.

SEE ALSO
     close(2), execve(2), getdtablesize(2), open(2), sigvec(2),
     execl(3c).




















Printed 10/17/86                                                3





































































%%index%%
na:72,56;
sy:128,547;
de:675,1621;2440,1109;
di:3549,778;4471,356;
rv:4827,516;
ca:5343,270;
se:5613,240;
%%index%%000000000139

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026