Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mknod(S) — OpenDesktop Software Development System 1.0.0d

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     MKNOD(S)                  UNIX System V                  MKNOD(S)



     Name
          mknod - make a directory or a special or ordinary file or a
          FIFO

     Syntax
          #include <sys/types.h>
          #include <sys/stat.h>
          int mknod (path, mode, dev)
          char *path;
          int mode, dev;

     Description
          The mknod system call creates a new file named by the path
          name pointed to by path.  The mode of the new file is
          initialized from mode.  Where the value of mode is
          interpreted as follows:

               0170000  file type; one of the following:
                        0010000 fifo special
                        0020000 character special
                        0040000 directory
                        0060000 block special
                        0100000 or 0000000 ordinary file

               0004000  set user ID on execution

               00020#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

               0001000  save text image after execution

               0000777  access permissions; constructed from the
                        following:
                        0000400 read by owner
                        0000200 write by owner
                        0000100 execute (search on directory) by owner
                        0000070 read, write, execute (search) by group
                        0000007 read, write, execute (search) by others

          Symbolic constants defining the value of the argument mode
          are in the <sys/stat.h> header file and should be used to
          construct mode.  The value of the argument mode should be
          the logical OR of the values of the desired permissions:

               Name        Description

               S_IFMT      file type; one of the following:

               S_IFIFO     FIFO-special

               S_IFCHR     character-special

               S_IFDIR     directory node

               S_IFBLK     block-special

               S_IFREG     ordinary-file

               S_ISUID     set user-ID on execution

               S_ISGID     set group-ID on execution

               S_ISVTX     (reserved)

               S_ENFMT     record-locking enforced

               S_IRUSR     read by owner

               S_IWUSR     write by owner

               S_IXUSR     execute (search) by owner

               S_IRGRP     read by group

               S_IWGRP     write by group

               S_IXGRP     execute (search) by group

               S_IROTH     read by others (that is, anyone else)

               S_IWOTH     write by others

               S_IXOTH     execute (search) 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.

          Values of mode other than those above are undefined and
          should not be used.  The low-order 9 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(S)).  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.

          The mknod routine may be invoked only by the super-user for
          file types other than FIFO special.

          The mknod routine will fail and the new file will not be
          created if one or more of the following is true:

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

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

          [ENOENT]       A component of the path prefix does not
                         exist.

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

          [EEXIST]       The named file exists.

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

          [ENOSPC]       No space is available.

          [EINTR]        A signal was caught during the mknod system
                         call.

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

          [EMULTIHOP]    Components of path require hopping to
                         multiple remote machines.

     See Also
          chmod(S), exec(S), umask(S), fs(F), mkdir(C)

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

     Warning
          If mknod is used to create a device in a remote directory
          (Remote File Sharing), the major and minor device numbers
          are interpreted by the server.

     Standards Conformance
          mknod is conformant with:
          AT&T SVID Issue 2, Select Code 307-127;
          and The X/Open Portability Guide II of January 1987.

                                             (printed 6/20/89)



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