BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / sys / mknod.2
index f7917eb..edd5926 100644 (file)
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1980, 1991 Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.\"    @(#)mknod.2     6.4 (Berkeley) 5/23/86
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.TH MKNOD 2 "May 23, 1986"
-.UC 4
-.SH NAME
-mknod \- make a special file
-.SH SYNOPSIS
-.nf
-.ft B
-mknod(path, mode, dev)
-char *path;
-int mode, dev;
-.fi
-.ft R
-.SH DESCRIPTION
-.I Mknod
-creates a new file
-whose name is
-.I path.
-The mode of the new file
-(including special file bits)
-is initialized from
-.IR mode .
-(The protection part of the mode
-is modified by the process's mode mask (see
-.IR umask (2))).
-The first block pointer of the i-node
-is initialized from
-.I dev 
-and is used to specify which device the special file
-refers to.
-.PP
-If mode indicates a block or character special file,
-.I dev
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)mknod.2    6.5 (Berkeley) 3/10/91
+.\"
+.Dd March 10, 1991
+.Dt MKNOD 2
+.Os BSD 4
+.Sh NAME
+.Nm mknod
+.Nd make a special file node
+.Sh SYNOPSIS
+.Fd #include <unistd.h>
+.Ft int
+.Fn mknod "const char *path" "mode_t mode" "dev_t dev"
+.Sh DESCRIPTION
+The device special file
+.Fa path
+is created with the major and minor
+device numbers extracted from
+.Fa mode.
+The access permissions of
+.Fa path
+are descendant from the
+.Xr umask 2
+of the parent process.
+.Pp
+If
+.Fa mode
+indicates a block or character special file,
+.Fa dev
 is a configuration dependent specification of a character or block
 is a configuration dependent specification of a character or block
-I/O device.  If
-.I mode
+I/O device and the superblock of the device.  If
+.Fa mode
 does not indicate a block special or character special device,
 does not indicate a block special or character special device,
-.I dev
+.Fa dev
 is ignored.
 is ignored.
-.PP
-.I Mknod
-may be invoked only by the super-user.
-.SH "RETURN VALUE
+.Pp
+.Fn Mknod
+requires super-user privileges.
+.Sh RETURN VALUES
 Upon successful completion a value of 0 is returned.
 Upon successful completion a value of 0 is returned.
-Otherwise, a value of \-1 is returned and \fIerrno\fP
+Otherwise, a value of -1 is returned and
+.Va errno
 is set to indicate the error.
 is set to indicate the error.
-.SH ERRORS
-.I Mknod
-will fail and the file mode will be unchanged if:
-.TP 15
-[ENOTDIR]
+.Sh ERRORS
+.Fn Mknod
+will fail and the file will be not created if:
+.Bl -tag -width Er
+.It Bq Er ENOTDIR
 A component of the path prefix is not a directory.
 A component of the path prefix is not a directory.
-.TP 15
-[EINVAL]
+.It Bq Er EINVAL
 The pathname contains a character with the high-order bit set.
 The pathname contains a character with the high-order bit set.
-.TP 15
-[ENAMETOOLONG]
+.It Bq Er ENAMETOOLONG
 A component of a pathname exceeded 255 characters,
 or an entire path name exceeded 1023 characters.
 A component of a pathname exceeded 255 characters,
 or an entire path name exceeded 1023 characters.
-.TP 15
-[ENOENT]
+.It Bq Er ENOENT
 A component of the path prefix does not exist.
 A component of the path prefix does not exist.
-.TP 15
-[EACCES]
+.It Bq Er EACCES
 Search permission is denied for a component of the path prefix.
 Search permission is denied for a component of the path prefix.
-.TP 15
-[ELOOP]
+.It Bq Er ELOOP
 Too many symbolic links were encountered in translating the pathname.
 Too many symbolic links were encountered in translating the pathname.
-.TP 15
-[EPERM]
+.It Bq Er EPERM
 The process's effective user ID is not super-user.
 The process's effective user ID is not super-user.
-.TP 15
-[EPERM]
+.It Bq Er EPERM
 The pathname contains a character with the high-order bit set.
 The pathname contains a character with the high-order bit set.
-.TP 15
-[EIO]
+.It Bq Er EIO
 An I/O error occurred while making the directory entry or allocating the inode.
 An I/O error occurred while making the directory entry or allocating the inode.
-.TP 15
-[ENOSPC]
+.It Bq Er 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 containing the directory.
 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 containing the directory.
-.TP 15
-[ENOSPC]
+.It Bq Er ENOSPC
 There are no free inodes on the file system on which the
 node is being created.
 There are no free inodes on the file system on which the
 node is being created.
-.TP 15
-[EDQUOT]
+.It Bq Er 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.
 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.
-.TP 15
-[EDQUOT]
+.It Bq Er EDQUOT
 The user's quota of inodes on the file system on
 which the node is being created has been exhausted.
 The user's quota of inodes on the file system on
 which the node is being created has been exhausted.
-.TP 15
-[EROFS]
+.It Bq Er EROFS
 The named file resides on a read-only file system.
 The named file resides on a read-only file system.
-.TP 15
-[EEXIST]
+.It Bq Er EEXIST
 The named file exists.
 The named file exists.
-.TP 15
-[EFAULT]
-.I Path
+.It Bq Er EFAULT
+.Fa Path
 points outside the process's allocated address space.
 points outside the process's allocated address space.
-.SH "SEE ALSO"
-chmod(2), stat(2), umask(2)
+.El
+.Sh SEE ALSO
+.Xr chmod 2 ,
+.Xr stat 2 ,
+.Xr umask 2
+.Sh HISTORY
+A
+.Nm
+function call appeared in Version 6 AT&T UNIX.