Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fcntl(2) — SunOS 0.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

exec(2)

open(2)

fcntl(7)

FCNTL(2)  —  System Interface Manual — System Calls

NAME

fcntl − file control

SYNOPSIS

#include <fcntl.h>
 res = fcntl(fd, cmd, arg)
int res;
int fd, cmd, arg;

DESCRIPTION

N.B.: fcntl is part of the /usr/group standard, not part of 4.1c.  It is included for reference purposes only.

Fcntl provides for control over descriptors.  The argument fd is a descriptor to be operated on by cmd as follows:

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 exec, otherwise the file will be closed upon execution of exec. 

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. 

F_SETFL Set descriptor status flags.  Only certain flags can be set; see fcntl(7).

RETURN VALUE

Upon successful completion, the value returned depends on cmd as follows:

F_DUPFDA new file descriptor.
F_GETFDValue of flag (only the low-order bit is defined).
F_SETFDValue other than −1.
F_GETFLValue of flags.
F_SETFLValue other than −1.

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

ERRORS

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

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

[EMFILE] Cmd is F_DUPFD and {OPEN_MAX} file descriptors are currently open. 

[EINVAL] Cmd is F_DUPFD and arg is negative or greater than {OPEN_MAX}. 

SEE ALSO

close(2), exec(2), open(2), fcntl(7)

Sun System Release 0.3  —  12 February 1983

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