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