CREAT(2-POSIX) RISC/os Reference Manual CREAT(2-POSIX)
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 (path, mode)
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. Otherwise, the file's owner
ID is set to the effective user ID of the process, the
file's group ID is set to the effective group ID of the pro-
cess, and the access 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 stat(5)].
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 NOFILES files open simultaneously. A new
file may be created with a mode that forbids writing.
ERRORS
creat fails if one or more of the following are true:
[ENOTDIR] A component of the path prefix is not a
directory.
[ENOENT] A component of the path prefix does not
exist, or the path name is null.
[EACCES] Search permission is denied on a com-
ponent of the path prefix, or the file
does not exist and the directory in
which the file is to be created does not
permit writing, or the file exists and
write permission is denied.
Printed 1/15/91 Page 1
CREAT(2-POSIX) RISC/os Reference Manual CREAT(2-POSIX)
[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.
[EISDIR] The named file is an existing directory.
[EMFILE] NOFILES file descriptors are currently
open.
[EFAULT] path points outside the allocated
address space of the process.
[ENFILE] The system file table is full.
[EAGAIN] The file exists, mandatory file/record
locking is set, and there are outstand-
ing record locks on the file [see
chmod(2)].
[EINTR] A signal was caught during the creat
system call.
[ENOSPC] The file system is out of inodes.
[ENAMETOOLONG] The length of path exceeds {PATH_MAX},
or a pathname component is longer than
{NAME_MAX} while {_POSIX_NO_TRUNC) is in
effect.
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.
Page 2 Printed 1/15/91