Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ creat(2) — NEWS-os 5.0.1

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)

stat(5)



creat(2)                  SYSTEM CALLS                   creat(2)



NAME
     creat - 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);

DESCRIPTION
     creat 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.

     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 effective 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'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) for the values of mode].

     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)

     creat fails if one or more of the following are true:

     EACCES              Search permission is denied  on  a  com-
                         ponent of the path prefix.

     EACCES              The  file  does  not   exist   and   the



                                                                1





creat(2)                  SYSTEM CALLS                   creat(2)



                         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 outstand-
                         ing  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 com-
                         ponent    exceeds    {NAMEMAX}    while
                         POSIXNOTRUNC is in effect.

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

     ENOENT              A component of the path prefix does  not
                         exist.

     ENOENT              The path name 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.

     ENOLINK             path points to a remote machine and  the
                         link   to  that  machine  is  no  longer
                         active.

     EMULTIHOP           Components of path  require  hopping  to
                         multiple remote machines.



                                                                2





creat(2)                  SYSTEM CALLS                   creat(2)



     ENOSPC              The file system is out of inodes.

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

DIAGNOSTICS
     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.












































                                                                3



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