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),
       attributes(5), standards(5)

SunOS 5.10			  29 Jul 2004			      mkdir(2)


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

home | help