The mknod
function is the primitive for making special files,
such as files that correspond to devices. The GNU C Library includes
this function for compatibility with BSD.
The prototype for mknod
is declared in sys/stat.h.
int
mknod (const char *filename, mode_t mode, dev_t dev)
¶Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
The mknod
function makes a special file with name filename.
The mode specifies the mode of the file, and may include the various
special file bits, such as S_IFCHR
(for a character special file)
or S_IFBLK
(for a block special file). See Testing the Type of a File.
The dev argument specifies which device the special file refers to. Its exact interpretation depends on the kind of special file being created.
The return value is 0
on success and -1
on error. In addition
to the usual file name errors (see File Name Errors), the
following errno
error conditions are defined for this function:
EPERM
The calling process is not privileged. Only the superuser can create special files.
ENOSPC
The directory or file system that would contain the new file is full and cannot be extended.
EROFS
The directory containing the new file can’t be modified because it’s on a read-only file system.
EEXIST
There is already a file named filename. If you want to replace this file, you must remove the old file explicitly first.