Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mknod(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

exec(2)

umask(2)

makedev(3C)

mkfifo(3C)

fs(4)

stat(5)

mkdir(1)



mknod(2)                  SYSTEM CALLS                   mknod(2)



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

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

     int mknod(const char *path, modet mode, devt dev);

DESCRIPTION
     mknod creates a new file named by the path name  pointed  to
     by  path.  The file type and permissions of the new file are
     initialized from mode.

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

                     SIFIFO   fifo special
                     SIFCHR   character special
                     SIFDIR   directory
                     SIFBLK   block special
                     SIFREG   ordinary file

     The file access permissions are specified  in  mode  by  the
     0007777 bits, and may be constructed by an OR of the follow-
     ing values:
SISUID   04000   Set user ID on execution.
SISGID   020#0   Set group ID on execution if # is 7, 5, 3, or 1
                  Enable mandatory file/record locking if # is 6, 4, 2, or 0
SISVTX   01000   Save text image  after execution.
SIRWXU   00700   Read, write, execute by owner.
SIRUSR   00400   Read by owner.
SIWUSR   00200   Write by owner.
SIXUSR   00100   Execute (search if a directory) by owner.
SIRWXG   00070   Read, write, execute by group.
SIRGRP   00040   Read by group.
SIWGRP   00020   Write by group.
SIXGRP   00010   Execute by group.
SIRWXO   00007   Read, write, execute  (search) by others.
SIROTH   00004   Read by others.
SIWOTH   00002   Write by others
SIXOTH   00001   Execute 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 effec-
     tive group ID of the process.  However, if the  SISGID  bit
     is  set  in  the  parent directory, 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 SISGID bit is cleared.





                                                                1





mknod(2)                  SYSTEM CALLS                   mknod(2)



     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 character special
     file, dev is a configuration-dependent  specification  of  a
     character  or block I/O device.  If mode does not indicate a
     block special or character special device, dev  is  ignored.
     See makedev(3C).

     mknod may be invoked only by  a  privileged  user  for  file
     types other than FIFO special.

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

     mknod fails and creates no new file if one or  more  of  the
     following are true:

     EEXIST              The named file exists.

     EINVAL              dev is invalid.

     EFAULT              path  points   outside   the   allocated
                         address space of the process.

     ELOOP               Too many symbolic links were encountered
                         in translating path.

     EMULTIHOP           Components of path  require  hopping  to
                         multiple  remote  machines  and the file
                         system type does not allow it.

     ENAMETOOLONG        The length of the path argument  exceeds
                         {PATHMAX}, or the length of a path com-
                         ponent    exceeds    {NAMEMAX}    while
                         POSIXNOTRUNC is in effect.

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

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

     EPERM               The effective user ID of the process  is
                         not super-user.

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

     ENOSPC              No space is available.

     EINTR               A signal was  caught  during  the  mknod



                                                                2





mknod(2)                  SYSTEM CALLS                   mknod(2)



                         system call.

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

SEE ALSO
     chmod(2), exec(2), umask(2), makedev(3C), mkfifo(3C), fs(4),
     stat(5).
     mkdir(1) in the User's Reference Manual.

DIAGNOSTICS
     Upon successful completion a value of 0 is returned.  Other-
     wise, a value of -1 is returned and errno is set to indicate
     the error.

NOTES
     If mknod creates a device in a remote directory using Remote
     File  Sharing, the major and minor device numbers are inter-
     preted by the server.



































                                                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026