Files
oldlinux-files/Minix/2.0.0/wwwman/man2/creat.2.html
2024-02-19 00:21:39 -05:00

126 lines
4.0 KiB
HTML

<HTML>
<HEAD>
<TITLE>creat(2)</TITLE>
</HEAD>
<BODY>
<H1>creat(2)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
creat - create a new file
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;sys/types.h&gt;</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;fcntl.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>creat(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>name</EM><STRONG>,</STRONG> <STRONG>mode_t</STRONG> <EM>mode</EM><STRONG>)</STRONG>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<STRONG>This</STRONG> <STRONG>interface</STRONG> <STRONG>is</STRONG> <STRONG>made</STRONG> <STRONG>obsolete</STRONG> <STRONG>by</STRONG> <STRONG>open(2),</STRONG> <STRONG>it</STRONG> <STRONG>is</STRONG> <STRONG>equivalent</STRONG> <STRONG>to</STRONG>
open(<EM>name</EM>, O_WRONLY | O_CREAT | O_TRUNC, <EM>mode</EM>)
<STRONG>Creat</STRONG> creates a new file or prepares to rewrite an existing file called
<EM>name</EM>, given as the address of a null-terminated string. If the file did
not exist, it is given mode <EM>mode</EM>, as modified by the process's mode mask
(see <STRONG><A HREF="../man2/umask.2.html">umask(2)</A></STRONG>). Also see <STRONG><A HREF="../man2/chmod.2.html">chmod(2)</A></STRONG> for the construction of the <EM>mode</EM>
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.
</PRE>
<H2>NOTES</H2><PRE>
The <EM>mode</EM> 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 <STRONG><A HREF="../man2/fcntl.2.html">fcntl(2)</A></STRONG> facility.
</PRE>
<H2>RETURN VALUE</H2><PRE>
The value -1 is returned if an error occurs. Otherwise, the call returns
a non-negative descriptor that only permits writing.
</PRE>
<H2>ERRORS</H2><PRE>
<EM>Creat</EM> 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] <EM>Name</EM> points outside the process's allocated address space.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man2/open.2.html">open(2)</A></STRONG>, <STRONG><A HREF="../man2/write.2.html">write(2)</A></STRONG>, <STRONG><A HREF="../man2/close.2.html">close(2)</A></STRONG>, <STRONG><A HREF="../man2/chmod.2.html">chmod(2)</A></STRONG>, <STRONG><A HREF="../man2/umask.2.html">umask(2)</A></STRONG>.
</PRE>
</BODY>
</HTML>