Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mknod(2) [ultrix man page]

mknod(2)							System Calls Manual							  mknod(2)

       mknod - make a directory or a special file

       #include <sys/types.h>
       #include <sys/stat.h>

       int mknod(path, mode, dev)
       char *path;
       mode_t mode;
       int dev;

       The  system  call  creates a new file whose name is path.  The mode of the new file (including special file bits) is initialized from mode,
       where the value of mode is interpreted as follows:

       S_IFMT-0170000  File type; one of the following:
	      S_IFIFO-0010000  FIFO special
	      S_IFCHR-0020000  Character special
	      S_IFDIR-0040000  Directory
	      S_IFBLK-0060000  Block special
		   or 0000000  Ordinary file

       S_IRWXU-0007000 Execution mode; made from the following:
	      S_ISUID-0004000  Set user ID on execution
	      S_ISGID-0002000  Set group ID on execution
	      S_ISVTX-0001000  Save text image after execution

	       00777   Access permissions; made from the following:
	      S_IREAD-0000400  Read by owner
	      S_IWRITE-0000200 Write by owner
	      S_IEXEC-0000100  Execute (search on directory) by owner
	      s_IRWXG-0000070  Read, write, execute (search) by group
	      S_IRWXD-0000007  Read, write, execute (search) by others

       The file's owner ID is set to the process's effective user ID.  The file's group ID is set to the parent directory's  group ID.

       Values of mode other than those in the preceeding list are undefined and should not be used.  The low-order nine bits of mode are  modified
       by  the process's file mode creation mask: all bits set in the process's file mode creation mask are cleared.  For further information, see
       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.

       For file types other than FIFO special, only the superuser can invoke the system call.

Return Values
       The system call returns a value of 0 upon successful completion.  Otherwise, returns a value of -1, and sets errno to indicate the error.

       The system call fails and the file mode is unchanged under the following conditions:

       [EPERM]	      The process's effective user ID is not superuser.

       [ENOTDIR]      A component of the path prefix is not a directory.

       [ENOENT]       A component of the path prefix does not exist.

       [EROFS]	      The named file resides on a read-only file system.

       [EEXIST]       The named file exists.

       [EFAULT]       Path points outside the process's allocated address space.

       [ELOOP]	      Too many symbolic links were encountered in translating the pathname.

       [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire pathname exceeded 1023 characters.

       [EACCES]       Search permission is denied for a component of the path prefix.

       [EIO]	      An I/O error occurred while making the directory entry or allocating the inode.

       [ENOSPC]       The  directory in which the entry for the new node is being placed cannot be extended, because there is no space left on the
		      file system.

       [ENOSPC]       There are no free inodes on the file system on which the node is being created.

       [EDQUOT]       The directory in which the entry for the new node is being placed cannot be extended because the user's quota of disk blocks
		      on the file system containing the directory has been exhausted.

       [EDQUOT]       The user's quota of inodes on the file system on which the node is being created has been exhausted.

       [ESTALE]       The  file  handle  given	in the argument is invalid.  The file referred to by that file handle no longer exists or has been

       [ETIMEDOUT]    A connect request or remote file operation failed because the connected party did not properly respond  after  a	period	of
		      time that is dependent on the communications protocol.

See Also
       mkdir(1), chmod(2), execve(2), stat(2), umask(2), fs(5)

Man Page