svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
mknod(2)
mknod(2) System Calls mknod(2)
NAME
mknod, mknodat - make a special file
SYNOPSIS
#include <sys/stat.h>
int mknod(const char *path, mode_t mode, dev_t dev);
int mknodat(int fd, const char *path, mode_t mode, dev_t dev);
DESCRIPTION
The mknod() function creates a new file named by the path name pointed
to by path. The file type and permissions of the new file are initial‐
ized from mode.
The file type is specified in mode by the S_IFMT bits, which must be
set to one of the following values:
S_IFIFO fifo special
S_IFCHR character special
S_IFDIR directory
S_IFBLK block special
S_IFREG ordinary file
The file access permissions are specified in mode by the 0007777 bits,
and may be constructed by a bitwise OR operation of the following val‐
ues:
tab(); lw(1.08i) lw(0.89i) lw(3.53i) S_ISUID04000Set user ID on execu‐
tion. S_ISGID020#0T{ Set group ID on execution if # is 7, 5, 3, or 1.
Enable mandatory file/record locking if # is 6, 4, 2, or 0 T}
S_ISVTX01000T{ On directories, restricted deletion flag; on regular
files on a UFS file system, do not cache flag. T} S_IRWXU00700Read,
write, execute by owner. S_IRUSR00400Read by owner. S_IWUSR00200Write
by owner. S_IXUSR00100T{ Execute (search if a directory) by owner. T}
S_IRWXG00070Read, write, execute by group. S_IRGRP00040Read by group.
S_IWGRP00020Write by group. S_IXGRP00010Execute by group.
S_IRWXO00007Read, write, execute (search) by others. S_IROTH00004Read
by others. S_IWOTH00002Write by others S_IXOTH00001Execute by others.
The owner ID of the file is set to the effective user ID of the
process. The group ID of the file is set to the effective group ID of
the process. However, if the S_ISGID bit is set in the parent direc‐
tory, then the group ID of the file is inherited from the parent. If
the group ID of the new file does not match the effective group ID or
one of the supplementary group IDs, the S_ISGID bit is cleared.
The access permission bits of mode are modified by the process's file
mode creation mask: all bits set in the process's file mode creation
mask are cleared (see umask(2)). If mode indicates a block or character
special file, dev is a configuration-dependent specification of a char‐
acter or block I/O device. If mode does not indicate a block special or
character special device, dev is ignored. See makedev(3C).
If path is a symbolic link, it is not followed.
Upon successful completion, mknod() marks for update the last data
access, last data modification, and last file status change timestamps
of the file. Also, the last data modification and last file status
change timestamps of the directory that contains the new entry is
marked for update.
Only a process with the PRIV_SYS_DEVICES privilege may invoke mknod()
for file types other than FIFO-special. See privileges(7).
The mknodat() function is equivalent to the mknod() function except in
the case where path specifies a relative path. In this case the newly
created directory, special file, or regular file is located relative to
the directory associated with the file descriptor fd instead of the
current working directory. If the file descriptor was opened without
O_SEARCH, the function checks whether directory searches are permitted
using the current permissions of the directory underlying the file
descriptor. If the file descriptor was opened with O_SEARCH, the func‐
tion does not perform the check.
If mknodat() is passed the special value AT_FDCWD in the fd parameter,
the current working directory is used and the behavior is identical to
a call to mknod().
RETURN VALUES
Upon successful completion, mknod() and mknodat() return 0. Otherwise,
it returns −1, the new file is not created, and errno is set to indi‐
cate the error.
ERRORS
The mknod() and mknodat() functions will fail if:
EACCES A component of the path prefix denies search permis‐
sion, or write permission is denied on the parent
directory.
EDQUOT The directory where the new file entry is being placed
cannot be extended because the user's quota of disk
blocks on that file system has been exhausted, or the
user's quota of inodes on the file system where the
file is being created has been exhausted.
EEXIST The named file exists.
EFAULT The path argument points to an illegal address.
EINTR A signal was caught during the execution of the mknod()
function.
EINVAL An invalid argument exists.
EIO An I/O error occurred while accessing the file system.
ELOOP Too many symbolic links were encountered in translating
path.
ENAMETOOLONG The length of the path argument exceeds {PATH_MAX}, or
the length of a path component exceeds {NAME_MAX} while
_POSIX_NO_TRUNC is in effect.
ENOENT A component of the path prefix specified by path does
not name an existing directory or path is an empty
string.
ENOLINK The path argument points to a remote machine and the
link to that machine is no longer active.
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 Not all required privileges are asserted in the effec‐
tive set of the calling process.
EROFS The directory in which the file is to be created is
located on a read-only file system.
The mknodat() function will fail if:
EACCES fd was not opened with O_SEARCH and the permissions of the
directory underlying fd do not permit directory searches.
EBADF The path argument does not specify an absolute path and the
fd argument is neither AT_FDCWD nor a valid file descriptor
open for reading or searching.
The mknod() and mknodat() functions may fail if:
ELOOP More than {SYMLOOP_MAX} symbolic links were encountered
during resolution of the path argument.
ENAMETOOLONG The length of a pathname exceeds {PATH_MAX}, or path‐
name resolution of a symbolic link produced an interme‐
diate result with a length that exceeds {PATH_MAX}.
The mknodat() function may fail if:
ENOTDIR The path argument is not an absolute path and fd is neither
AT_FDCWD nor a file descriptor associated with a directory.
USAGE
The mknod() function can be invoked for file types other than FIFO spe‐
cial only by a process with the PRIV_SYS_DEVICES privilege asserted in
its effective set.
Applications should use the mkdir(2) function to create a directory
because it does not require non-basic privileges and because mknod()
might not establish directory entries for the directory itself (.) and
the parent directory (..).
The mkfifo(3C) function should be used to create FIFOs.
Doors are created using door_create(3C) and can be attached to the file
system using fattach(3C).
Symbolic links can be created using symlink(2).
An endpoint for communication can be created using socket(3C).
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelAsync-Signal-
Safe _ StandardSee standards(7).
SEE ALSO
chmod(2), creat(2), exec(2), mkdir(2), open(2), stat(2), symlink(2),
umask(2), door_create(3C), fattach(3C), makedev(3C), mkfifo(3C),
socket(3C), stat.h(3HEAD), attributes(7), privileges(7), standards(7)
Oracle Solaris 11.4 25 Sep 2020 mknod(2)