xref: /csrg-svn/lib/libc/sys/mknod.2 (revision 21003)
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.2 (Berkeley) 05/22/85

MKNOD 2 ""
C 4
NAME
mknod - make a special file
SYNOPSIS
mknod(path, mode, dev)
char *path;
int mode, dev;
DESCRIPTION
Mknod creates a new file whose name is path. The mode of the new file (including special file bits) is initialized from mode . (The protection part of the mode is modified by the process's mode mask; see umask (2)). The first block pointer of the i-node is initialized from dev and is used to specify which device the special file refers to.

If mode indicates a block or character special file, dev is a configuration dependent specification of a character or block I/O device. If mode does not indicate a block special or character special device, dev is ignored.

Mknod may be invoked only by the super-user.

"RETURN VALUE
Upon successful completion a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
ERRORS
Mknod will fail and the file mode will be unchanged if:

15 [ENOTDIR] A component of the path prefix is not a directory.

15 [EINVAL] The pathname contains a character with the high-order bit set.

15 [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

15 [ENOENT] A component of the path prefix does not exist.

15 [EACCES] Search permission is denied for a component of the path prefix.

15 [ELOOP] Too many symbolic links were encountered in translating the pathname.

15 [EPERM] The process's effective user ID is not super-user.

15 [EPERM] The pathname contains a character with the high-order bit set.

15 [EIO] An I/O error occurred while making the directory entry or allocating the inode.

15 [EROFS] The named file resides on a read-only file system.

15 [EEXIST] The named file exists.

15 [EFAULT] Path points outside the process's allocated address space.

"SEE ALSO"
chmod(2), stat(2), umask(2)