142 lines
3.2 KiB
Groff
142 lines
3.2 KiB
Groff
.\" Copyright (c) 1980 Regents of the University of California.
|
|
.\" All rights reserved. The Berkeley software License Agreement
|
|
.\" specifies the terms and conditions for redistribution.
|
|
.\"
|
|
.\" @(#)creat.2 6.6 (Berkeley) 5/22/86
|
|
.\"
|
|
.TH CREAT 2 "May 22, 1986"
|
|
.UC 4
|
|
.SH NAME
|
|
creat \- create a new file
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.ft B
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
|
|
int creat(const char *\fIname\fP, mode_t \fImode\fP)
|
|
.ft R
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.ft B
|
|
This interface is made obsolete by open(2), it is equivalent to
|
|
.ft R
|
|
.PP
|
|
.RS
|
|
open(\fIname\fP, O_WRONLY | O_CREAT | O_TRUNC, \fImode\fP)
|
|
.RE
|
|
.PP
|
|
.B Creat
|
|
creates a new file or prepares to rewrite an existing
|
|
file called
|
|
.IR name ,
|
|
given as the address of a null-terminated string.
|
|
If the file did not exist, it is given
|
|
mode
|
|
.IR mode ,
|
|
as modified by the process's mode mask (see
|
|
.BR umask (2)).
|
|
Also see
|
|
.BR chmod (2)
|
|
for the
|
|
construction of the
|
|
.I mode
|
|
argument.
|
|
.PP
|
|
If the file did exist, its mode and owner remain unchanged
|
|
but it is truncated to 0 length.
|
|
.PP
|
|
The file is also opened for writing, and its file descriptor
|
|
is returned.
|
|
.SH NOTES
|
|
The
|
|
.I 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
|
|
.BR fcntl (2)
|
|
facility.
|
|
.SH "RETURN VALUE
|
|
The value \-1 is returned if an error occurs. Otherwise,
|
|
the call returns a non-negative descriptor that only permits
|
|
writing.
|
|
.SH ERRORS
|
|
.I Creat
|
|
will fail and the file will not be created or truncated
|
|
if one of the following occur:
|
|
.TP 15
|
|
[ENOTDIR]
|
|
A component of the path prefix is not a directory.
|
|
.TP 15
|
|
[ENAMETOOLONG]
|
|
The path name exceeds PATH_MAX characters.
|
|
.TP 15
|
|
[ENOENT]
|
|
The named file does not exist.
|
|
.TP 15
|
|
[ELOOP]
|
|
Too many symbolic links were encountered in translating the pathname.
|
|
(Minix-vmd)
|
|
.TP 15
|
|
[EACCES]
|
|
Search permission is denied for a component of the path prefix.
|
|
.TP 15
|
|
[EACCES]
|
|
The file does not exist and the directory
|
|
in which it is to be created is not writable.
|
|
.TP 15
|
|
[EACCES]
|
|
The file exists, but it is unwritable.
|
|
.TP 15
|
|
[EISDIR]
|
|
The file is a directory.
|
|
.TP 15
|
|
[EMFILE]
|
|
There are already too many files open.
|
|
.TP 15
|
|
[ENFILE]
|
|
The system file table is full.
|
|
.TP 15
|
|
[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.
|
|
.TP 15
|
|
[ENOSPC]
|
|
There are no free inodes on the file system on which the
|
|
file is being created.
|
|
.ig
|
|
.TP 15
|
|
[EDQUOT]
|
|
The directory in which the entry for the new file
|
|
is being placed cannot be extended because the
|
|
user's quota of disk blocks on the file system
|
|
containing the directory has been exhausted.
|
|
.TP 15
|
|
[EDQUOT]
|
|
The user's quota of inodes on the file system on
|
|
which the file is being created has been exhausted.
|
|
..
|
|
.TP 15
|
|
[EROFS]
|
|
The named file resides on a read-only file system.
|
|
.TP 15
|
|
[ENXIO]
|
|
The file is a character special or block special file, and
|
|
the associated device does not exist.
|
|
.TP 15
|
|
[EIO]
|
|
An I/O error occurred while making the directory entry or allocating the inode.
|
|
.TP 15
|
|
[EFAULT]
|
|
.I Name
|
|
points outside the process's allocated address space.
|
|
.SH "SEE ALSO"
|
|
.BR open (2),
|
|
.BR write (2),
|
|
.BR close (2),
|
|
.BR chmod (2),
|
|
.BR umask (2).
|