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 umask(2)).

     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 is a symbolic link, it is not followed.

     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:

           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.

           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.

           The named file already exists.

           The path argument points to an illegal address.

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

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

     ELOOP Too many symbolic links were encountered in  translat-
           ing path.

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

           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.

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

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

           No free space is available on  the  device  containing
           the directory.

           A component of the path prefix is not a directory.

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


     When a UFS file system is mounted with logging enabled, file
     system  transactions  that  free blocks from files might not
     actually add those freed blocks to the  file  system's  free
     list  until  some  unspecified  time  in  the  future.  This
     behavior improves file system performance but does not  con-
     form   to   the  POSIX,  Single  UNIX  Specification,  SPARC
     Conformance Definition, System V Application  Binary  Inter-
     face,  System V Interface Definition, and X/Open Portability
     Guide Standards, which require that freed space be available
     immediately.  To enable standards conformance regarding file
     deletions or to address the problem of  not  being  able  to
     grow  files  on a relatively full UFS file system even after
     files  have  been  deleted,   disable   UFS   logging   (see


     See attributes(5) for descriptions of the  following  attri-

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


     mount_ufs(1M), chmod(2),  mknod(2),  umask(2),  stat(3HEAD),

Man(1) output converted with man2html