143 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			143 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).
 | 
