MKNOD(2) INTERACTIVE UNIX System MKNOD(2)
NAME
mknod - make a directory or a special or ordinary file or a
FIFO
SYNOPSIS
#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 ini-
tialized 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 fol-
lowing:
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
Rev. C Software Development Set Page 1
MKNOD(2) INTERACTIVE UNIX System MKNOD(2)
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 (i.e., 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 effec-
tive 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 modi-
fied 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.
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.
Rev. C Software Development Set Page 2
MKNOD(2) INTERACTIVE UNIX System MKNOD(2)
[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 sys-
tem.
[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 multi-
ple remote machines.
SEE ALSO
chmod(2), exec(2), umask(2), fs(4).
mkdir(1) in the INTERACTIVE UNIX System User's/System
Administrator'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 indi-
cate 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.
Rev. C Software Development Set Page 3