table of contents
other versions
- wheezy 3.44-1
- jessie 3.74-1
- jessie-backports 4.10-2~bpo8+1
- testing 4.10-2
- unstable 4.10-2
other sections
MKNOD(2) | Linux Programmer's Manual | MKNOD(2) |
NAME¶
mknod - create a special or ordinary fileSYNOPSIS¶
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h>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
DESCRIPTION¶
The 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 VALUE¶
mknod() returns zero on success, or -1 if an error occurred (in which case, errno is set appropriately).ERRORS¶
- EACCES
- 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).)
- EEXIST
- pathname already exists. This includes the case where pathname is a symbolic link, dangling or not.
- EFAULT
- pathname points outside your accessible address space.
- EINVAL
- mode requested creation of something other than a regular file, device special file, FIFO or socket.
- ELOOP
- Too many symbolic links were encountered in resolving pathname.
- ENAMETOOLONG
- pathname was too long.
- ENOENT
- A directory component in pathname does not exist or is a dangling symbolic link.
- ENOMEM
- Insufficient kernel memory was available.
- ENOSPC
- The device containing pathname has no room for the new node.
- ENOTDIR
- A component used as a directory in pathname is not, in fact, a directory.
- EPERM
- 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.
- EROFS
- pathname refers to a file on a read-only file system.
CONFORMING TO¶
SVr4, 4.4BSD, POSIX.1-2001 (but see below).NOTES¶
POSIX.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 ALSO¶
chmod(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)COLOPHON¶
This page is part of release 3.44 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/.2010-09-20 | Linux |