unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

mknod(2)                         System Calls                         mknod(2)



NAME
       mknod - make a directory, a special file, or a regular file

SYNOPSIS
       #include <sys/stat.h>

       int mknod(const char *path, mode_t mode, dev_t dev);

DESCRIPTION
       The  mknod() function creates a new file named by the path name pointed
       to by path. The file type and permissions of the new file are  initial-
       ized from mode.

       The  file  type  is specified in mode by the S_IFMT bits, which must be
       set to one of the following values:

       S_IFIFO         fifo special



       S_IFCHR         character special



       S_IFDIR         directory



       S_IFBLK         block special



       S_IFREG         ordinary file



       The file access permissions are specified in mode by the 0007777  bits,
       and  may be constructed by a bitwise OR operation of the following val-
       ues:


       tab(); lw(1.083333i) lw(0.888889i) lw(3.527778i).  S_ISUID04000Set user
       ID  on  execution.  S_ISGID020#0T{ Set group ID on execution if # is 7,
       5, 3, or 1. Enable mandatory file/record locking if # is 6, 4, 2, or  0
       T}  S_ISVTX01000T{ On directories, restricted deletion flag; on regular
       files on a UFS file system, do not cache  flag.   T}  S_IRWXU00700Read,
       write, execute by owner.  S_IRUSR00400Read by owner.  S_IWUSR00200Write
       by owner.  S_IXUSR00100T{ Execute (search if a directory) by owner.  T}
       S_IRWXG00070Read,  write, execute by group.  S_IRGRP00040Read by group.
       S_IWGRP00020Write   by   group.     S_IXGRP00010Execute    by    group.
       S_IRWXO00007T{   Read,   write,   execute   (search)   by  others.   T}
       S_IROTH00004Read    by    others.     S_IWOTH00002Write    by    others
       S_IXOTH00001Execute by others.


       The  owner  ID  of  the  file  is  set  to the effective user ID of the
       process. The group ID of the file is set to the effective group  ID  of
       the  process.   However, if the S_ISGID bit is set in the parent direc-
       tory, then the group ID of the file is inherited from the  parent.   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.

       The access permission bits of mode are modified by the  process's  file
       mode  creation  mask:  all bits set in the process's file mode creation
       mask are cleared (see umask(2)).  If mode indicates a block or  charac-
       ter  special  file, dev is a configuration-dependent specification of a
       character or block I/O device. If mode does not indicate a  block  spe-
       cial or character special device, dev is ignored. See makedev(3C).

       If path is a symbolic link, it is not followed.

RETURN VALUES
       Upon  successful  completion,  mknod() returns 0. Otherwise, it returns
       -1, the new file is not created, and  errno  is  set  to  indicate  the
       error.

ERRORS
       The mknod() function will fail if:

       EACCES                  A  component  of  the path prefix denies search
                               permission, or write permission  is  denied  on
                               the parent directory.



       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, or the user's quota  of  inodes
                               on the file system where the file is being cre-
                               ated has been exhausted.



       EEXIST                  The named file exists.



       EFAULT                  The path argument points to an illegal address.



       EINTR                   A signal was caught during the execution of the
                               mknod() function.



       EINVAL                  An invalid argument exists.



       EIO                     An  I/O error occurred while accessing the file
                               system.



       ELOOP                   Too many symbolic  links  were  encountered  in
                               translating path.



       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  specified  by
                               path  does  not  name  an existing directory or
                               path is an empty string.



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



       ENOSPC                  The directory that would contain the  new  file
                               cannot be extended or the file system is out of
                               file allocation resources.



       ENOTDIR                 A component of the path prefix is not a  direc-
                               tory.



       EPERM                   Not  all  privileges are asserted in the effec-
                               tive set of the calling process.



       EROFS                   The directory in which the file is to  be  cre-
                               ated is located on a read-only file system.



       The mknod() function may fail if:

       ENAMETOOLONG            Pathname resolution of a symbolic link produced
                               an intermediate  result  whose  length  exceeds
                               {PATH_MAX}.



USAGE
       Applications  should  use  the  mkdir(2) function to create a directory
       because appropriate permissions are not required  and  because  mknod()
       might  not establish directory entries for the directory itself (.) and
       the parent directory (..). The mknod() function can be invoked only  by
       a  privileged  user  for  file  types  other  than  FIFO  special.  The
       mkfifo(3C) function should be used to create FIFOs.

       Doors are created using door_create(3DOOR) and can be attached  to  the
       file system using fattach(3C). Symbolic links can be created using sym-
       link(2).  An  endpoint  for  communication   can   be   created   using
       socket(3SOCKET).

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


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Interface  StabilityStan-
       dard MT-LevelAsync-Signal-Safe


SEE ALSO
       chmod(2),  creat(2),  exec(2),  mkdir(2), open(2), stat(2), symlink(2),
       umask(2),  door_create(3DOOR),  fattach(3C),  makedev(3C),  mkfifo(3C),
       socket(3SOCKET),  stat.h(3HEAD),  attributes(5),  privileges(5),  stan-
       dards(5)



SunOS 5.10                        19 Feb 2004                         mknod(2)