Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ creat(2) — Interactive 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

close(2)

dup(2)

fcntl(2)

lseek(2)

open(2)

read(2)

umask(2)

write(2)



          CREAT(2)             INTERACTIVE UNIX System             CREAT(2)



          NAME
               creat - create a new file or rewrite an existing one

          SYNOPSIS
               #include <sys/types.h>
               #include <sys/stat.h>

               int creat (path, mode)
               char *path;
               int mode;

          DESCRIPTION
               The creat system call creates a new ordinary file or
               prepares to rewrite an existing file named by the path name
               pointed to by path.

               If the file exists, the length is truncated to 0 and the
               mode and owner are unchanged.  Otherwise, the file's owner
               ID is set to the effective user ID of the process; the group
               ID of the process is set to the effective group ID of the
               process; and the low-order 12 bits of the file mode are set
               to the value of mode modified as follows:

                    All bits set in the process's file mode creation mask
                    are cleared [see umask(2)].

                    The ``save text image after execution bit'' of the mode
                    is cleared [see chmod(2)].

               Upon successful completion, a write-only file descriptor is
               returned and the file is open for writing, even if the mode
               does not permit writing.  The file pointer is set to the
               beginning of the file.  The file descriptor is set to remain
               open across exec system calls [see fcntl(2)].  No process
               may have more than 20 files open simultaneously.  A new file
               may be created with a mode that forbids writing.

               Symbolic constants defining the access permission bits are
               specified in the <sys/stat.h> header file and should be used
               to construct mode [see chmod(2)].

               The call creat(path, mode) is equivalent to the following
               [see open(2)]:

                    open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)

               The creat system call fails if one or more of the following
               is true:

               [ENOTDIR]      A component of the path prefix is not a
                              directory.

               [ENOENT]       A component of the path prefix does not


          Rev. C Software Development Set                            Page 1





          CREAT(2)             INTERACTIVE UNIX System             CREAT(2)



                              exist.

               [EACCES]       Search permission is denied on a component of
                              the path prefix.

               [ENOENT]       The path name is null.

               [EACCES]       The file does not exist and the directory in
                              which the file is to be created does not per-
                              mit writing.

               [EROFS]        The named file resides or would reside on a
                              read-only file system.

               [ETXTBSY]      The file is a pure procedure (shared text)
                              file that is being executed.

               [EACCES]       The file exists and write permission is
                              denied.

               [EISDIR]       The named file is an existing directory.

               [EMFILE]       NOFILES file descriptors are currently open.

               [EFAULT]       The path argument points outside the allo-
                              cated address space of the process.

               [ENFILE]       The system file table is full.

               [EAGAIN]       The file exists, mandatory file/record lock-
                              ing is set, and there are outstanding record
                              locks on the file [see chmod(2)].

               [EINTR]        A signal was caught during the creat system
                              call.

               [ENOLINK]      Path points to a remote machine and the link
                              to that machine is no longer active.

               [EMULTIHOP]    Components of path require hopping to multi-
                              ple remote machines.

               [ENOSPC]       The file system is out of inodes.

          SEE ALSO
               chmod(2), close(2), dup(2), fcntl(2), lseek(2), open(2),
               read(2), umask(2), write(2).

          DIAGNOSTICS
               Upon successful completion, a non-negative integer, namely
               the file descriptor, is returned.  Otherwise, a value of -1
               is returned, and errno is set to indicate the error.



          Rev. C Software Development Set                            Page 2



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