Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
CREAT(2)                      System Calls Manual                     CREAT(2)

NAME
       creat - create a new file

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

       int creat(const char *name, mode_t mode)

DESCRIPTION
       This interface is made obsolete by open(2), it is equivalent to

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

       Creat creates a new file or prepares to rewrite an existing file called
       name, given as the address of a null-terminated string.   If  the  file
       did not exist, it is given mode mode, as modified by the process's mode
       mask (see umask(2)).  Also see chmod(2) for  the  construction  of  the
       mode argument.

       If  the  file  did exist, its mode and owner remain unchanged but it is
       truncated to 0 length.

       The file is also  opened  for  writing,  and  its  file  descriptor  is
       returned.

NOTES
       The  mode  given is arbitrary; it need not allow writing.  This feature
       has been used in the past by programs to construct a simple,  exclusive
       locking  mechanism.   It  is  replaced  by the O_EXCL open mode, or the
       advisory locking of the fcntl(2) facility.

RETURN VALUE
       The value -1 is returned if  an  error  occurs.   Otherwise,  the  call
       returns a non-negative descriptor that only permits writing.

ERRORS
       Creat will fail and the file will not be created or truncated if one of
       the following occur:

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

       [ENAMETOOLONG] The path name exceeds PATH_MAX characters.

       [ENOENT]       The named file does not exist.

       [ELOOP]        Too many symbolic links were encountered in  translating
                      the pathname.  (Minix-vmd)

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

       [EACCES]       The file does not exist and the directory in which it is
                      to be created is not writable.

       [EACCES]       The file exists, but it is unwritable.

       [EISDIR]       The file is a directory.

       [EMFILE]       There are already too many files open.

       [ENFILE]       The system file table is full.

       [ENOSPC]       The  directory  in  which  the entry for the new file is
                      being placed cannot be  extended  because  there  is  no
                      space left on the file system containing the directory.

       [ENOSPC]       There are no free inodes on the file system on which the
                      file is being created.

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

       [ENXIO]        The file is a character special or block  special  file,
                      and the associated device does not exist.

       [EIO]          An  I/O  error occurred while making the directory entry
                      or allocating the inode.

       [EFAULT]       Name points  outside  the  process's  allocated  address
                      space.

SEE ALSO
       open(2), write(2), close(2), chmod(2), umask(2).

4th Berkeley Distribution        May 22, 1986                         CREAT(2)

NAME | SYNOPSIS | DESCRIPTION | NOTES | RETURN VALUE | ERRORS | SEE ALSO