mknod man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

MKNOD(P)		   POSIX Programmer's Manual		      MKNOD(P)

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

SYNOPSIS
       #include <sys/stat.h>

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

DESCRIPTION
       The  mknod()  function shall create a new file named by the pathname to
       which the argument path points.

       The file type for path is OR'ed into the mode argument, and the	appli‐
       cation shall select one of the following symbolic constants:

		     Name      Description
		     S_IFIFO   FIFO-special
		     S_IFCHR   Character-special (non-portable)
		     S_IFDIR   Directory (non-portable)
		     S_IFBLK   Block-special (non-portable)
		     S_IFREG   Regular (non-portable)

       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 unspec‐
       ified.

       The  permissions for the new file are OR'ed into the mode argument, and
       may be selected from any combination of	the  following	symbolic  con‐
       stants:

		Name	 Description
		S_ISUID	 Set user ID on execution.
		S_ISGID	 Set group ID on execution.
		S_IRWXU	 Read, write, or execute (search) by owner.
		S_IRUSR	 Read by owner.
		S_IWUSR	 Write by owner.
		S_IXUSR	 Execute (search) by owner.
		S_IRWXG	 Read, write, or execute (search) by group.
		S_IRGRP	 Read by group.
		S_IWGRP	 Write by group.
		S_IXGRP	 Execute (search) by group.
		S_IRWXO	 Read, write, or execute (search) by others.
		S_IROTH	 Read by others.
		S_IWOTH	 Write by others.
		S_IXOTH	 Execute (search) by others.
		S_ISVTX	 On directories, restricted deletion flag.

       The  user  ID of the file shall be initialized to the effective user ID
       of the process. The group ID of the file shall be initialized to either
       the  effective  group  ID  of the process or the group ID of the parent
       directory. Implementations shall provide a way to initialize the file's
       group  ID to the group ID of the parent directory. Implementations may,
       but need not, provide an implementation-defined way to  initialize  the
       file's  group  ID to the effective group ID of the calling process. The
       owner, group, and other permission bits of mode shall  be  modified  by
       the  file mode creation mask of the process. The mknod() function shall
       clear each bit whose corresponding bit in the file mode	creation  mask
       of the process is set.

       If  path	 names	a  symbolic  link, mknod() shall fail and set errno to
       [EEXIST].

       Upon successful completion, mknod() shall mark for update the st_atime,
       st_ctime,  and  st_mtime	 fields	 of  the  file. Also, the st_ctime and
       st_mtime fields of the directory that contains the new entry  shall  be
       marked for update.

       Only  a process with appropriate privileges may invoke mknod() for file
       types other than FIFO-special.

RETURN VALUE
       Upon successful completion, mknod() shall return 0. Otherwise, it shall
       return -1, the new file shall not be created, and errno shall be set to
       indicate the error.

ERRORS
       The mknod() function shall fail if:

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

       EEXIST The named file exists.

       EINVAL An invalid argument exists.

       EIO    An I/O error occurred while accessing the file system.

       ELOOP  A loop exists in symbolic links encountered during resolution of
	      the path argument.

       ENAMETOOLONG
	      The length of a pathname exceeds {PATH_MAX} or a pathname compo‐
	      nent is longer than {NAME_MAX}.

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

       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 directory.

       EPERM  The  invoking  process  does not have appropriate privileges and
	      the file type is not FIFO-special.

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

       The mknod() function may fail if:

       ELOOP  More  than  {SYMLOOP_MAX} symbolic links were encountered during
	      resolution of the path argument.

       ENAMETOOLONG
	      Pathname resolution of a symbolic link produced an  intermediate
	      result whose length exceeds {PATH_MAX}.

       The following sections are informative.

EXAMPLES
   Creating a FIFO Special File
       The  following  example	shows  how to create a FIFO special file named
       /home/cnd/mod_done, with read/write permissions	for  owner,  and  with
       read permissions for group and others.

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

	      dev_t dev;
	      int   status;
	      ...
	      status  = mknod("/home/cnd/mod_done", S_IFIFO | S_IWUSR |
		  S_IRUSR | S_IRGRP | S_IROTH, dev);

APPLICATION USAGE
       The  mkfifo()  function is preferred over this function for making FIFO
       special files.

RATIONALE
       The POSIX.1-1990 standard required that the group ID of a newly created
       file be set to the group ID of its parent directory or to the effective
       group ID of the creating process. FIPS 151-2 required that  implementa‐
       tions  provide a way to have the group ID be set to the group ID of the
       containing directory, but did not prohibit  implementations  also  sup‐
       porting a way to set the group ID to the effective group ID of the cre‐
       ating process. Conforming applications should not assume which group ID
       will  be used. If it matters, an application can use chown() to set the
       group ID after the file is created, or determine under what  conditions
       the implementation will set the desired group ID.

FUTURE DIRECTIONS
       None.

SEE ALSO
       chmod()	,  creat()  ,  exec() , mkdir() , mkfifo() , open() , stat() ,
       umask()	,  the	Base  Definitions  volume   of	 IEEE Std 1003.1-2001,
       <sys/stat.h>

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003	by  the	 Institute  of
       Electrical  and	Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained	online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group		     2003			      MKNOD(P)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net