|MKNOD(2)||Linux Programmer's Manual||MKNOD(2)|
NAMEmknod - create a special or ordinary file
int mknod(const char * pathname , mode_t mode , dev_t dev );
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
DESCRIPTIONThe system call mknod() creates a file system node (file, device special file or named pipe) named pathname, with attributes specified by mode and dev.
RETURN VALUEmknod() returns zero on success, or -1 if an error occurred (in which case, errno is set appropriately).
- The parent directory does not allow write permission to the process, or one of the directories in the path prefix of pathname did not allow search permission. (See also path_resolution(7).)
- The user's quota of disk blocks or inodes on the file system has been exhausted.
- pathname already exists. This includes the case where pathname is a symbolic link, dangling or not.
- pathname points outside your accessible address space.
- mode requested creation of something other than a regular file, device special file, FIFO or socket.
- Too many symbolic links were encountered in resolving pathname.
- pathname was too long.
- A directory component in pathname does not exist or is a dangling symbolic link.
- Insufficient kernel memory was available.
- The device containing pathname has no room for the new node.
- A component used as a directory in pathname is not, in fact, a directory.
- mode requested creation of something other than a regular file, FIFO (named pipe), or UNIX domain socket, and the caller is not privileged (Linux: does not have the CAP_MKNOD capability); also returned if the file system containing pathname does not support the type of node requested.
- pathname refers to a file on a read-only file system.
CONFORMING TOSVr4, 4.4BSD, POSIX.1-2001 (but see below).
NOTESPOSIX.1-2001 says: "The only portable use of mknod() is to create a FIFO-special file. If mode is not S_IFIFO or dev is not 0, the behavior of mknod() is unspecified." However, nowadays one should never use mknod() for this purpose; one should use mkfifo(3), a function especially defined for this purpose.
SEE ALSOchmod(2), chown(2), fcntl(2), mkdir(2), mknodat(2), mount(2), socket(2), stat(2), umask(2), unlink(2), makedev(3), mkfifo(3), path_resolution(7)
COLOPHONThis page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.