126 lines
4.0 KiB
HTML
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><sys/types.h></STRONG>
|
|
<STRONG>#include</STRONG> <STRONG><fcntl.h></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>
|