132 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1980 Regents of the University of California.
 | 
						|
.\" All rights reserved.  The Berkeley software License Agreement
 | 
						|
.\" specifies the terms and conditions for redistribution.
 | 
						|
.\"
 | 
						|
.\"	@(#)mknod.2	6.4 (Berkeley) 5/23/86
 | 
						|
.\"
 | 
						|
.TH MKNOD 2 "May 23, 1986"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
mknod, mkfifo \- make a special file
 | 
						|
.SH SYNOPSIS
 | 
						|
.nf
 | 
						|
.ft B
 | 
						|
#include <sys/types.h>
 | 
						|
#include <unistd.h>
 | 
						|
#include <sys/stat.h>
 | 
						|
 | 
						|
int mknod(const char *\fIpath\fP, mode_t \fImode\fP, dev_t \fIdev\fP)
 | 
						|
int mkfifo(const char *\fIpath\fP, mode_t \fImode\fP)
 | 
						|
.fi
 | 
						|
.ft R
 | 
						|
.SH DESCRIPTION
 | 
						|
.B 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 ,
 | 
						|
as defined in
 | 
						|
.IR <sys/stat.h> .
 | 
						|
(The protection part of the mode
 | 
						|
is modified by the process's mode mask (see
 | 
						|
.BR 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
 | 
						|
is the device number of a character or block I/O device.
 | 
						|
The low eight bits of the device number hold the minor device number
 | 
						|
that selects a device among the devices governed by the same driver.
 | 
						|
The driver is selected by the major device number, the next eight bits
 | 
						|
of the device number.
 | 
						|
.PP
 | 
						|
If
 | 
						|
.I mode
 | 
						|
does not indicate a block special or character special device,
 | 
						|
.I dev
 | 
						|
is ignored.
 | 
						|
(For example, when creating a ``fifo'' special file.)
 | 
						|
.PP
 | 
						|
.B Mknod
 | 
						|
may be invoked only by the super-user,
 | 
						|
unless it is being used to create a fifo.
 | 
						|
.PP
 | 
						|
The call
 | 
						|
.BI "mkfifo(" path ", " mode ")"
 | 
						|
is equivalent to
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
.BI "mknod(" path ", (" mode " & 0777) | S_IFIFO, 0)"
 | 
						|
.RE
 | 
						|
.SH "RETURN VALUE
 | 
						|
Upon successful completion a value of 0 is returned.
 | 
						|
Otherwise, a value of \-1 is returned and \fBerrno\fP
 | 
						|
is set to indicate the error.
 | 
						|
.SH ERRORS
 | 
						|
.B Mknod
 | 
						|
will fail and the file mode will be unchanged if:
 | 
						|
.TP 15
 | 
						|
[ENOTDIR]
 | 
						|
A component of the path prefix is not a directory.
 | 
						|
.TP 15
 | 
						|
[ENAMETOOLONG]
 | 
						|
The path name exceeds PATH_MAX characters.
 | 
						|
.TP 15
 | 
						|
[ENOENT]
 | 
						|
A component of the path prefix does not exist.
 | 
						|
.TP 15
 | 
						|
[EACCES]
 | 
						|
Search permission is denied for a component of the path prefix.
 | 
						|
.TP 15
 | 
						|
[ELOOP]
 | 
						|
Too many symbolic links were encountered in translating the pathname.
 | 
						|
(Minix-vmd)
 | 
						|
.TP 15
 | 
						|
[EPERM]
 | 
						|
The process's effective user ID is not super-user.
 | 
						|
.TP 15
 | 
						|
[EIO]
 | 
						|
An I/O error occurred while making the directory entry or allocating the inode.
 | 
						|
.TP 15
 | 
						|
[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.
 | 
						|
.TP 15
 | 
						|
[ENOSPC]
 | 
						|
There are no free inodes on the file system on which the
 | 
						|
node is being created.
 | 
						|
.ig
 | 
						|
.TP 15
 | 
						|
[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.
 | 
						|
.TP 15
 | 
						|
[EDQUOT]
 | 
						|
The user's quota of inodes on the file system on
 | 
						|
which the node is being created has been exhausted.
 | 
						|
..
 | 
						|
.TP 15
 | 
						|
[EROFS]
 | 
						|
The named file resides on a read-only file system.
 | 
						|
.TP 15
 | 
						|
[EEXIST]
 | 
						|
The named file exists.
 | 
						|
.TP 15
 | 
						|
[EFAULT]
 | 
						|
.I Path
 | 
						|
points outside the process's allocated address space.
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR chmod (2),
 | 
						|
.BR stat (2),
 | 
						|
.BR umask (2).
 |