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

FreeBSD Manual Pages


home | help
mkdir(2)			 System	Calls			      mkdir(2)

       mkdir - make a directory

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

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

       The  mkdir()  function  creates a  new directory	named by the path name
       pointed to by path. The mode of the new directory is  initialized  from
       mode (see chmod(2) for values of	mode). The protection part of the mode
       argument	 is  modified  by  the	process's  file	 creation  mask	  (see

       The  directory's	 owner	ID is set to  the process's effective user ID.
       The directory's group ID	is set to the  process's effective  group  ID,
       or if the S_ISGID bit is	set in the parent directory, then the group ID
       of the directory	is inherited from the parent.  The S_ISGID bit of  the
       new directory is	 inherited from	the parent directory.

       If path names a symbolic	link, mkdir() fails and	sets errno to EEXIST.

       The  newly created directory is empty with the exception	of entries for
       itself (.) and its parent directory (..).

       Upon successful completion, mkdir()  marks  for	update	the  st_atime,
       st_ctime	 and  st_mtime fields of the directory.	Also, the st_ctime and
       st_mtime	fields of the directory	that contains the new entry are	marked
       for update.

       Upon  successful	 completion, 0 is returned. Otherwise, -1 is returned,
       no directory is created,	and  errno is set to indicate the error.

       The mkdir() function will fail if:

       EACCES	       Either a	component of the  path	prefix	denies	search
		       permission  or write permission is denied on the	parent
		       directory of the	directory to be	created.

       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 exhausted; the  new
		       directory cannot	be created because the user's quota of
		       disk blocks on that file	system has been	exhausted;  or
		       the user's quota	of inodes on the file system where the
		       file is being created has been exhausted.

       EEXIST	       The named file already exists.

       EFAULT	       The path	argument points	to an illegal address.

       EINVAL	       An attempt was made to  create  an  extended  attribute
		       that is a directory.

       EIO	       An I/O error has	occurred while accessing the file sys-

       ELOOP	       Too many	symbolic links were encountered	in translating

       ELOOP	       A loop exists in	symbolic links encountered during res-
		       olution of the path argument.

       EMLINK	       The maximum number of links  to	the  parent  directory
		       would be	exceeded.

       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.

       ENOENT	       A  component  of	the path prefix	does not exist or is a
		       null pathname.

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

       ENOSPC	       No free space is	available on the device	containing the

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

       EROFS	       The path	prefix resides on a read-only file system.

       The mkdir() function may	fail if:

       ENAMETOOLONG    As a result of encountering a symbolic link in  resolu-
		       tion  of	 the  path argument, the length	of the substi-
		       tuted pathname string exceeded {PATH_MAX}.

       Example 1: Create a directory.

       The following example demonstrates how  to  create  a  directory	 named
       /home/cnd/mod1,	with read, write, and search permissions for owner and
       group, and with read and	search permissions for others.

       #include	<sys/types.h>
       #include	<sys/stat.h>
       int status;
       status =	mkdir("/home/cnd/mod1",	S_IRWXU	| S_IRWXG | S_IROTH | S_IXOTH);

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |
       |MT-Level		     |Async-Signal-Safe		   |

       chmod(2),  mknod(2),   umask(2),	  mkdirp(3GEN),	  stat.h(3HEAD),   at-
       tributes(5), standards(5)

SunOS 5.10			  29 Jul 2004			      mkdir(2)


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

home | help