Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ creat(2) — UnixWare 2.01

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)

stat(5)

umask(2)

write(2)






       creat(2)                                                    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, mode_t mode);

       DESCRIPTION
             creat creates a new ordinary 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 effective group ID of the process, or if the
             S_ISGID bit is set in the parent directory then the group ID
             of the file is inherited from the parent directory.

             The mode bits of the file are based on 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 S_ISGID 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) for the values of mode]


             If write succeeds, it returns a write-only file descriptor 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, O_WRONLY | O_CREAT | O_TRUNC, mode)



                           Copyright 1994 Novell, Inc.               Page 1













      creat(2)                                                    creat(2)


         Return Values
            On success, creat returns a non-negative integer, namely the
            lowest numbered unused file descriptor.  On failure, creat
            returns -1, sets errno to identify the error, and no files are
            created or modified.

         Errors
            In the following conditions, creat fails and sets errno to:

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

           EACCES The file does not exist and write permission on the
                   directory in which the file is to be created is denied.

           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 {PATH_MAX}, or
                   the length of a path component exceeds {NAME_MAX} while
                   _POSIX_NO_TRUNC 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 pathname is null.




                          Copyright 1994 Novell, Inc.               Page 2













       creat(2)                                                    creat(2)


            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.

            ENOSPC The file system is out of inodes.

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

       NOTICES
          Considerations for Threads Programming
             Open file descriptors are a process resource and available to
             any sibling thread; if used concurrently, actions by one
             thread can interfere with those of a sibling.




















                           Copyright 1994 Novell, Inc.               Page 3








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