mkdir(2)




NAME

     mkdir - make a directory


SYNOPSIS

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

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


DESCRIPTION

     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.


RETURN VALUES

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


ERRORS

     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
           system.

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

     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 directory.

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

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


USAGE

     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
     mount_ufs(1M).


ATTRIBUTES

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

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


SEE ALSO

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


Man(1) output converted with man2html