mknod(2)

NAAM
mknod, mknodat - maak een map, een speciaal- of een normaal bestand

BIBLIOTHEEK
Standard C bibliotheek (libc, -lc)

SAMENVATTING
#include <sys/stat.h>

int mknod(const char *path, mode_t mode, dev_t dev);

#include <fcntl.h>           /* Definitie van AT_* constanten */
#include <sys/stat.h>

int mknodat(int dirfd, const char *path, mode_t mode, dev_t dev);

    Feature Test Macro´s eisen in glibc (zie feature_test_macros(7)):

mknod():
    _XOPEN_SOURCE >= 500
        || /* Vanaf glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

BESCHRIJVING
The system call mknod() creates a filesystem node (file, device special file, or named pipe) named path, with attributes specified by mode and dev.

toestand bepaald de bestandsmodus die zal worden gebruikt, en het soort node dat gemaakt zal worden. Dat hoort een combinatie (met bit wijze OF) ) van een hieronder genoemde bestand soorten en nul of meer van de bestandsmodi zoals te lezen in inode(7).

De toestemmingen worden aangepast door het umask van het proces op de bekende manier: bij afwezigheid van de standaard ACL worden de toestemmingen van de gemaakte node worden (toestemmingen & ~umask).

De bestand soort zou een van S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO of S_IFSOCK moeten zijn, om: een normaal bestand te specificeren (dat leeg aangemaakt zal worden), een speciaal teken bestand, een speciaal blok-bestand, of een FIFO (pijp met naam), of UNIX domein socket, respectievelijk. (Het nul bestand type is equivalent aan S_IFREG.)

 Als het bestand soort S_IFCHR of S_IFBLK is, dan bepaald app de grote en de kleine nummers van het nieuw gemaakte apparaat speciale bestand; anders wordt het genegeerd.

If path already exists, or is a symbolic link, this call fails with an EEXIST error.

De nieuw gemaakte node zal eigendom zijn van het effectieve gebruiker ID van het proces. Als de map waar de node in zit het set-group-id bit aan heeft staan of als het bestandssysteem gekoppeld is met BSD groep regels, dan zal de nieuwe node het groep eigendom van zijn ouder-mappen erven; anders zal het eigendom zijn van het geldende groep ID van het proces.

  mknodat()
De mknodat() systeem aanroep werkt op exact dezelfde manier als mknod(), behalve voor de hier beschreven verschillen.

If path is relative, then it is interpreted relative to the directory referred to by the file descriptor dirfd (rather than relative to the current working directory of the calling process, as is done by mknod() for a relative pathname).

If path is relative and dirfd is the special value AT_FDCWD, then path is interpreted relative to the current working directory of the calling process (like mknod()).

Als padnaam absoluut is, dan wordt mapbi genegeerd.

Zie openat(2) voor een uitleg over de noodzaak van mknodat().

EIND WAARDE
mknod() en mknodat() geven nul terug bij slagen, of -1 als een fout optrad (in welk geval errno overeenkomstig wordt gezet).

FOUTEN

EACCES
    The parent directory does not allow write permission to the process, or one of the directories in the path prefix of path did not allow search permission. (See also path_resolution(7).)

EBADF
    (mknodat()) path is relative but dirfd is neither AT_FDCWD nor a valid file descriptor.

EDQUOT
    De gebruiker quota aan schijf blokken of inodes van het bestandssysteem is uitgeput.

EEXIST
    path already exists. This includes the case where path is a symbolic link, dangling or not.

EFAULT
    pad wijst buiten door u toegankelijke adres ruimte.

EINVAL
    toestand vroeg om het maken van iets anders dan een normaal bestand, apparaat speciaal bestand, of FIFO.

ELOOP
    Teveel symbolische koppelingen werden tegengekomen bij het vaststellen van pad.

ENAMETOOLONG
    pad was te lang.

ENOENT
    Een map deel van pad bestaat niet of is een loshangende symbolische koppeling.

ENOMEM
    Onvoldoende kernelgeheugen voorhanden.

ENOSPC
    The device containing path has no room for the new node.

ENOTDIR
    Een onderdeel gebruikt als map in pad is in feite geen map.

ENOTDIR
    (mknodat()) path is relative and dirfd is a file descriptor referring to a file other than a directory.

EPERM
    mode requested creation of something other than a regular file, FIFO (named pipe), or UNIX domain socket, and the caller is not privileged (Linux: does not have the CAP_MKNOD capability); also returned if the filesystem containing path does not support the type of node requested.

EROFS
    pad verwijst naar een bestand op een alleen-lezen bestandsysteem.

VERSIES
POSIX.1-2001 schrijft: "Het enige overdraagbare gebruikt van mknod() is door een FIFO-speciaal bestand aan te maken. Als mode niet gelijk is aan S_IFIFO of dev is niet 0, dan is het gedrag van mknod() niet gespecificeerd". Echter zou men tegenwoordig nooit mknod() voor dit doel moeten gebruiken; men zou mkfifo(3) moeten gebruiken, een aanroep die speciaal voor dit doel bedoeld is.

Onder Linux, kan mknod() niet gebruikt worden om mappen aan te maken. Men zou mappen moeten aanmaken met mkdir(2).

VOLDOET AAN
POSIX.1-2024.

GESCHIEDENIS

mknod()
    SVr4, 4.4BSD, POSIX.1-2001 (maar zie VERSIES).

mknodat()
    Linux 2.6.16, glibc 2.4. POSIX.1-2008.

OPMERKINGEN
Er bestaan veel ongelukkigheden in het NFS protocol. Enkele van deze beïnvloeden mkdnod() en mknodat().

ZIE OOK
mknod(1), chmod(2), chown(2), fcntl(2), mkdir(2), mount(2), socket(2), stat(2), umask(2), unlink(2), makedev(3), mkfifo(3), acl(5), path_resolution(7)

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.