mknod creates a FIFO (named pipe), character special file, or block special
file with the specified
name.
A special file is a triple (boolean, integer, integer)
stored in the filesystem.
The boolean chooses between character special file and
block special file. The two integers are the major and minor
device number.
Thus, a special file takes almost no place on disk, and is used
only for communication with the operating system, not for data
storage. Often special files refer to hardware devices (disk, tape, tty,
printer) or to operating system services (/dev/null, /dev/random).
Block special files usually are disk-like devices
(where data can be accessed given a block number,
and e.g. it is meaningful to have a block cache).
All other devices are character special files.
(Long ago the distinction was a different one: I/O to
a character special file would be unbuffered, to a block
special file buffered.)
The
mknod command is what creates files of this type.
The argument following
name specifies the type of file to make:
|
|
p |
for a FIFO
|
|
b |
for a block (buffered) special file
|
|
c |
for a character (unbuffered) special file
|
|
The GNU version of
mknod allows
u (unbuffered) as a synonym for
c.
When making a block or character special file, the major and minor
device numbers must be given after the file type (in decimal, or
in octal with leading 0; the GNU version also allows hexadecimal
with leading 0x).
By default, the mode of created files is 0666 (a+rw) minus the bits
set in the umask.