Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

close(2)

dup(2)

fcntl(2)

getrlimit(2)

lseek(2)

open(2)

read(2)

umask(2)

write(2)

fcntl(5)

lfs(5)

stat(5)

types(5)

creat(2)                                                           creat(2)

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

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

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

     int creat64(const char *path, modet mode);

DESCRIPTION
     creat() creates a new file or prepares to rewrite an existing file
     named by the pathname pointed to by path.

     If the file exists, the length is truncated to 0 and the mode and
     owner are unchanged.

     If the file does not exist the file's owner ID is set to the effective
     user ID of the process. The group ID of the file is set to the effec-
     tive group ID of the process, or if the SISGID bit is set in the
     parent directory then the group ID of the file is inherited from the
     parent directory. The access permission bits of the file mode are set
     to the value of mode modified as follows:

     -  If the group ID of the new file does not match the effective group
        ID or one of the supplementary group IDs, the SISGID bit is
        cleared.

     -  All bits set in the process' 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)]. A new file may be created with a mode that forbids writing.

     The call creat(path, mode) is equivalent to:

          open(path, OWRONLY | OCREAT | OTRUNC, mode)

     There is no functional difference between creat() and creat64(),
     except for the interpretation of off64t [see lfs(5)].







Page 1                       Reliant UNIX 5.44                Printed 11/98

creat(2)                                                           creat(2)

ERRORS
     The following error code descriptions are function-specific. You will
     find a general description in introprm2(2) or in errno(5).

     creat() fails if one or more of the following apply:

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

     EACCES        The file does not exist and the directory in which the
                   file is to be created does not permit writing.

     EACCES        The file exists and write permission is denied.

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

     EFAULT        path points outside the allocated address space of the
                   process.

     EISDIR        The named file is an existing directory.

     EINTR         A signal was caught during the creat() system call.

     ELOOP         Too many symbolic links were encountered in translating
                   path.

     EMFILE        The process has too many open files [see getrlimit(2)].

     ENAMETOOLONG  The length of the path argument exceeds PATHMAX or the
                   length of a path component exceeds NAMEMAX.

     ENOTDIR       A component of the pathname is not a directory.

     ENOENT        A component of the pathname does not exist.

     ENOENT        The pathname is null.

     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.

     ENFILE        The system file table is full.

     ENOSPC        The file system is out of inodes.






Page 2                       Reliant UNIX 5.44                Printed 11/98

creat(2)                                                           creat(2)

RESULT
     Upon successful completion a non-negative integer, namely the lowest
     numbered unused file descriptor, is returned. Otherwise, a value of -1
     is returned, no files are created or modified, and errno is set to
     indicate the error.

SEE ALSO
     chmod(2), close(2), dup(2), fcntl(2), getrlimit(2), lseek(2), open(2),
     read(2), umask(2), write(2), fcntl(5), lfs(5), stat(5), types(5).













































Page 3                       Reliant UNIX 5.44                Printed 11/98

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