Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
creat(2)		      System Calls Manual		      creat(2)

       creat - create a	new file or rewrite an existing	one

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

       int creat(const char *path, mode_t mode);


       creat()	creates	a new ordinary file or prepares	to rewrite an existing
       file named by the path name pointed to by path.

       If the file exists, the length is truncated to 0	and the	mode and owner
       are unchanged.

       If  the file does not exist the file's owner ID is set to the effective
       user ID of the process.	The group ID of	the file is set	to the	effec-
       tive  group ID of the process, or if the	S_ISGID	bit is set in the par-
       ent directory then the group ID of the file is inherited	from the  par-
       ent  directory.	The access permission bits of the file mode are	set to
       the value of mode modified as follows:

	      o	If the group ID	of the new file	does not match	the  effective
		group  ID  or  one of the supplementary	group IDs, the S_ISGID
		bit is cleared.

	      o	All bits set in	the process's  file  mode  creation  mask  are
		cleared	(see umask(2)).

	      o	The  "save  text  image	 after	execution  bit"	of the mode is
		cleared	(see chmod(2) for the values of	mode).

       Upon successful completion, a write-only	file  descriptor  is  returned
       and  the	 file  is  open	 for writing, even if the mode does not	permit
       writing.	 The file pointer is set to the	beginning of  the  file.   The
       file  descriptor	 is  set to remain open	across exec functions (see fc-
       ntl(2)).	 A new file may	be created with	a mode that forbids writing.

       The call	creat(path, mode) is equivalent	to:

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

       Upon successful completion a non-negative integer,  namely  the	lowest
       numbered	unused file descriptor,	is returned.  Otherwise, a value of -1
       is returned, no files are created or modified, and errno	is set to  in-
       dicate the error.

       creat() fails if	one or more of the following are true:

       EACCES		   Search  permission  is denied on a component	of the
			   path	prefix.

			   The file does not exist and the directory in	 which
			   the file is to be created does not permit writing.

			   The file exists and write permission	is denied.

       EAGAIN		   The	file  exists, mandatory	file/record locking is
			   set,	and there are outstanding record locks on  the
			   file	(see chmod(2)).

       EDQUOT		   The	directory  where  the  new file	entry is being
			   placed cannot be extended because the user's	 quota
			   of  disk  blocks  on	 that file system has been ex-

			   The user's quota of inodes on the file system where
			   the file is being created has been exhausted.

       EFAULT		   path	points to an illegal address.

       EINTR		   A signal was	caught during the creat() function.

       EISDIR		   The named file is an	existing directory.

       ELOOP		   Too	many symbolic links were encountered in	trans-
			   lating path.

       EMFILE		   The process has too	many  open  files  (see	 getr-

       EMULTIHOP	   Components  of path require hopping to multiple re-
			   mote	machines.

       ENAMETOOLONG	   The length of the path argument exceeds {PATH_MAX},
			   or	the   length   of  a  path  component  exceeds
			   {NAME_MAX} while {_POSIX_NO_TRUNC} is in effect.

       ENFILE		   The system file table is full.

       ENOENT		   A component of the path prefix does not exist.

			   The path name is null.

       ENOLINK		   path	points to a remote machine  and	 the  link  to
			   that	machine	is no longer active.

       ENOSPC		   The file system is out of inodes.

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

       EROFS		   The	named  file resides or would reside on a read-
			   only	file system.

       chmod(2), close(2), dup(2), fcntl(2), getrlimit(2), lseek(2),  open(2),
       read(2),	umask(2), write(2), stat(5)

				  14 Apr 1995			      creat(2)


Want to link to this manual page? Use this URL:

home | help