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

FreeBSD Manual Pages


home | help
mknod(2)			 System	Calls			      mknod(2)

       mknod - make a directory, a special file, or a regular file

       #include	<sys/stat.h>

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

       The  mknod() function creates a new file	named by the path name pointed
       to by path. The file type and permissions of the	new file are  initial-
       ized from mode.

       The  file  type	is specified in	mode by	the S_IFMT bits, which must be
       set to one of the following values:

       S_IFIFO	       fifo special

       S_IFCHR	       character special

       S_IFDIR	       directory

       S_IFBLK	       block special

       S_IFREG	       ordinary	file

       The file	access permissions are specified in mode by the	0007777	 bits,
       and  may	be constructed by a bitwise OR operation of the	following val-

       S_ISUID	     04000	 Set user ID on	execution.
       S_ISGID	     020#0	 Set group ID on execution if  #  is
				 7,  5,	 3,  or	 1. Enable mandatory
				 file/record locking if	# is  6,  4,
				 2, or 0
       S_ISVTX	     01000	 On directories, restricted deletion
				 flag; on regular  files  on  a	 UFS
				 file system, do not cache flag.
       S_IRWXU	     00700	 Read, write, execute by owner.
       S_IRUSR	     00400	 Read by owner.
       S_IWUSR	     00200	 Write by owner.
       S_IXUSR	     00100	 Execute  (search if a directory) by
       S_IRWXG	     00070	 Read, write, execute by group.
       S_IRGRP	     00040	 Read by group.
       S_IWGRP	     00020	 Write by group.
       S_IXGRP	     00010	 Execute by group.
       S_IRWXO	     00007	 Read, write,  execute	(search)  by
       S_IROTH	     00004	 Read by others.

       S_IWOTH	     00002	 Write by others
       S_IXOTH	     00001	 Execute 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 effective group	ID  of
       the  process.   However,	if the S_ISGID bit is set in the parent	direc-
       tory, then the group ID of the file is inherited	from the  parent.   If
       the  group  ID of the new file does not match the effective group ID or
       one of the supplementary	group IDs, the S_ISGID bit is cleared.

       The access permission 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	(see umask(2)).	 If mode indicates a block or  charac-
       ter  special  file, dev is a configuration-dependent specification of a
       character or block I/O device. If mode does not indicate	a  block  spe-
       cial or character special device, dev is	ignored. See makedev(3C).

       If path is a symbolic link, it is not followed.

       Upon  successful	 completion,  mknod() returns 0. Otherwise, it returns
       -1, the new file	is not created,	and errno is set to indicate  the  er-

       The mknod() function will fail if:

       EACCES		       A  component  of	 the path prefix denies	search
			       permission, or write permission	is  denied  on
			       the parent directory.

       EDQUOT		       The directory where the new file	entry is being
			       placed cannot be	extended  because  the	user's
			       quota  of  disk	blocks on that file system has
			       been exhausted, or the user's quota  of	inodes
			       on the file system where	the file is being cre-
			       ated has	been exhausted.

       EEXIST		       The named file exists.

       EFAULT		       The path	argument points	to an illegal address.

       EINTR		       A signal	was caught during the execution	of the
			       mknod() function.

       EINVAL		       An invalid argument exists.

       EIO		       An  I/O error occurred while accessing the file

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating path.

       ENAMETOOLONG	       The   length   of  the  path  argument  exceeds
			       {PATH_MAX}, or the length of a  path  component
			       exceeds	{NAME_MAX} while _POSIX_NO_TRUNC is in

       ENOENT		       A component of the  path	 prefix	 specified  by
			       path  does  not	name  an existing directory or
			       path is an empty	string.

       ENOLINK		       The path	argument points	to  a  remote  machine
			       and  the	 link to that machine is no longer ac-

       ENOSPC		       The directory that would	contain	the  new  file
			       cannot be extended or the file system is	out of
			       file allocation resources.

       ENOTDIR		       A component of the path prefix is not a	direc-

       EPERM		       Not  all	 privileges are	asserted in the	effec-
			       tive set	of the calling process.

       EROFS		       The directory in	which the file is to  be  cre-
			       ated is located on a read-only file system.

       The mknod() function may	fail if:

       ENAMETOOLONG	       Pathname	resolution of a	symbolic link produced
			       an intermediate	result	whose  length  exceeds

       Applications should use the mkdir(2) function to	create a directory be-
       cause appropriate permissions are  not  required	 and  because  mknod()
       might  not establish directory entries for the directory	itself (.) and
       the parent directory (..). The mknod() function can be invoked only  by
       a  privileged  user  for	 file  types  other than FIFO special. The mk-
       fifo(3C)	function should	be used	to create FIFOs.

       Doors are created using door_create(3DOOR) and can be attached  to  the
       file system using fattach(3C). Symbolic links can be created using sym-
       link(2).	 An  endpoint  for  communication   can	  be   created	 using

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |
       |MT-Level		     |Async-Signal-Safe		   |

       chmod(2),  creat(2),  exec(2),  mkdir(2), open(2), stat(2), symlink(2),
       umask(2),  door_create(3DOOR),  fattach(3C),  makedev(3C),  mkfifo(3C),
       socket(3SOCKET),	 stat.h(3HEAD),	 attributes(5),	 privileges(5),	 stan-

SunOS 5.10			  19 Feb 2004			      mknod(2)


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

home | help