mknod.2freebsd

Langue: en

Autres versions - même langue

Version: 338628 (ubuntu - 24/10/10)

Section: 2 (Appels système)


BSD mandoc

NAME

mknod mknodat - make a special file node

LIBRARY

Lb libc

SYNOPSIS

In unistd.h Ft int Fn mknod const char *path mode_t mode dev_t dev Ft int Fn mknodat int fd const char *path mode_t mode dev_t dev

DESCRIPTION

The file system node Fa path is created with the file type and access permissions specified in Fa mode . The access permissions are modified by the process's umask value.

If Fa mode indicates a block or character special file, Fa dev is a configuration dependent specification denoting a particular device on the system. Otherwise, Fa dev is ignored.

The Fn mknod system call requires super-user privileges.

The Fn mknodat system call is equivalent to Fn mknod except in the case where Fa path specifies a relative path. In this case the newly created device node is created relative to the directory associated with the file descriptor Fa fd instead of the current working directory. If Fn mknodat is passed the special value AT_FDCWD in the Fa fd parameter, the current working directory is used and the behavior is identical to a call to Fn mknod .

RETURN VALUES

Rv -std mknod

ERRORS

The Fn mknod system call will fail and the file will be not created if:
Bq Er ENOTDIR
A component of the path prefix is not a directory.
Bq Er ENAMETOOLONG
A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.
Bq Er ENOENT
A component of the path prefix does not exist.
Bq Er EACCES
Search permission is denied for a component of the path prefix.
Bq Er ELOOP
Too many symbolic links were encountered in translating the pathname.
Bq Er EPERM
The process's effective user ID is not super-user.
Bq Er EIO
An I/O error occurred while making the directory entry or allocating the inode.
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.
Bq Er ENOSPC
There are no free inodes on the file system on which the node is being created.
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.
Bq Er EDQUOT
The user's quota of inodes on the file system on which the node is being created has been exhausted.
Bq Er EROFS
The named file resides on a read-only file system.
Bq Er EEXIST
The named file exists.
Bq Er EFAULT
The Fa path argument points outside the process's allocated address space.
Bq Er EINVAL
Creating anything else than a block or character special file (or a whiteout is not supported.

In addition to the errors returned by the Fn mknod , the Fn mknodat may fail if:

Bq Er EBADF
The Fa path argument does not specify an absolute path and the Fa fd argument is neither AT_FDCWD nor a valid file descriptor open for searching.
Bq Er ENOTDIR
The Fa path argument is not an absolute path and Fa fd is neither AT_FDCWD nor a file descriptor associated with a directory.

SEE ALSO

chmod(2), mkfifo(2), stat(2), umask(2)

STANDARDS

The Fn mknodat system call follows The Open Group Extended API Set 2 specification.

HISTORY

The Fn mknod function appeared in AT&T System v6 . The Fn mknodat system call appeared in Fx 8.0 .