mknod(2) mknod(2)NAME mknod - make a directory, or a special or ordinary file SYNOPSIS int mknod(path, mode, dev) char *path; int mode, dev; DESCRIPTION mknod creates a new file named by the path name pointed to by path. The mode of the new file is initialized from mode, where the value of mode is interpreted as follows: 0170000 file type mask; one of the following: 0010000 FIFO special 0020000 character special 0040000 directory 0060000 block special 0100000 or 0000000 ordinary file 0120000 symbolic link 0140000 socket 0004000 set user ID on execution 0002000 set group ID on execution 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 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. mknod may be invoked only by the superuser for file types other than FIFO special. April, 1990 1
mknod(2) mknod(2)RETURN VALUE Upon successful completion a value of 0 is returned. Other- wise, a value of -1 is returned and errno is set to indicate the error. ERRORS mknod 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 su- peruser. [EPERM] A pathname contains a character with the high- order bit set. [ENAMETOOLONG] A component of a pathname exceeded NAME_MAX characters, or an entire pathname exceeded PATH_MAX. [ELOOP] Too many symbolic links were encountered in translating a pathname. [ENOTDIR] A component of the path prefix is not a direc- tory. [ENOENT] A component of the path prefix does not exist. [EROFS] The directory in which the file is to be creat- ed is located on a read-only file system. [EEXIST] The named file exists. [EFAULT] path points outside the allocated address space of the process. SEE ALSO mkdir(1), mknod(1), chmod(2), exec(2), stat(2), umask(2), fs(4), stat(5). 2 April, 1990