Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fcntl(5) — sys5 — Apollo Domain/OS SR10.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fcntl(2)

open(2)

FCNTL(5)                             SysV                             FCNTL(5)



NAME
     fcntl - file control options

SYNOPSIS
     #include <fcntl.h>

DESCRIPTION
     The fcntl(2) function provides for control over open files.  This include
     file describes requests and arguments to fcntl and open(2).

     /* Flag values accessible to open(2) and fcntl(2) */
     /*  (The first three can only be set by open) */
     #define O_RDONLY 000
     #define O_WRONLY 001
     #define O_RDWR   002
     #define O_NDELAY 004    /* Non-blocking I/O on object */
     #define O_APPEND 010    /* append (writes guaranteed at the end) */
     #define O_SYNC   020    /* synchronous write option */

     /* Flag values accessible only to open(2) */
     #define O_CREAT  00400  /* open with file create (uses third open arg)*/
     #define O_TRUNC  01000  /* open with truncation */
     #define O_EXCL   02000  /* exclusive open */

     /* fcntl(2) requests */
     #define F_DUPFD  0      /* Duplicate fildes */
     #define F_GETFD  1      /* Get fildes flags */
     #define F_SETFD  2      /* Set fildes flags */
     #define F_GETFL  3      /* Get file flags */
     #define F_SETFL  4      /* Set file flags */
     #define F_GETLK  7      /* Get file lock */
     #define F_SETLK  8      /* Set file lock */
     #define F_SETLKW 9      /* Set file lock and wait */
     #define F_CHKFL  10     /* Check legality of file flag changes */

     /* file segment locking set data type - information passed to system by user */
     struct flock {
            short l_type;
            short l_whence;
            long  l_start;
            long  l_len;     /* len = 0 means until end of file */
            short l_sysid;
            short l_pid;
     };

     /* file segment locking types */
     #define F_RDLCK 01      /* Read lock */
     #define F_WRLCK 02      /* Write lock */
     #define F_UNLCK 03      /* Remove lock(s) */

     POSIX, XPG3, AES
               If the application defines the compiler symbol _POSIX_SOURCE,
               struct flock is declared as follows:

               struct flock {
                      short l_type;  /* Type of lock. */
                      short l_whence;  /* Flag for starting offset. */
                      off_t l_start;  /* Relative offset in bytes. */
                      off_t l_len;  /* Size; if 0 then until EOF. */
                      long l_sysid;
                      pid_t l_pid;  /* Process ID of the lock owner. */
                              }


SEE ALSO
     fcntl(2), open(2).

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