Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
mknod(2)							      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  configura-
       tion  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.	  Oth-
       erwise, returns a value of -1, and sets errno to	indicate the error.

       The  system call	fails and the file mode	is unchanged under the follow-
       ing 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

       [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

       [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	direc-
		      tory 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 revoked.

       [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 communi-
		      cations protocol.

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


Name | Syntax | Description | Return Values | Diagnostics | See Also

Want to link to this manual page? Use this URL:

home | help