Scroll to navigation

MKDIR(2) Linux Programmeurs Handleiding MKDIR(2)

NAAM

mkdir, mkdirat - maak een map

SAMENVATTING

#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *padnaam, mode_t modus);
#include <fcntl.h>           /* Definitie van AT_* constanten */
#include <sys/stat.h>
int mkdirat(int map_bi, const char *padnaam, mode_t modus);

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

mkdirat():

Sinds glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Vóór glibc 2.10:
_ATFILE_SOURCE

BESCHRIJVING

mkdir() probeert een map te maken met de naam padnaam.

Het argument modus specificeert de modus voor de nieuwe map (zie inode(7)). Deze wordt aangepast door het umask van het proces op de gebruikelijke wijze: in de afwezigheid van een standaard ACL, is de modus van de aangemaakte map (mode & ~umask & 0777). Of de andere modus bits worden in acht genomen voor de aangemaakte map is afhankelijk van het operating systeem. Voor Linux, zie OPMERKINGEN hieronder.

De nieuw gemaakte map zal eigendom worden van het geldende gebruiker ID van het proces. Als de map die het bestand bevat het set-group-ID bit gezet heeft, of als het bestandsysteem is gekoppeld met BSD groep regels , (mount -o bsdgroups of, synoniem mount -o grpid) dan zal de nieuwe map het groep eigendom van zijn ouder-map erven; anders zal het eigendom worden van het geldende groep-id van het proces.

Al de ouder-map het zet-groep-id bit gezet heeft, dan zal dat ook gezet worden voor de nieuw gemaakte map.

mkdirat()

De mkdirat() systeem aanroep werkt op precies dezelfde manier als mkdir(), behalve voor de hieronder beschreven verschillen.

Als de padnaam in padnaam relatief is, dan wordt deze geïnterpreteerd relatief aan de map aangewezen door de bestand indicator dirfd (liever dan relatief aan de huidige werkmap van het aanroepende proces, zoals gedaan door mkdir() voor een relatieve padnaam).

Als padnaam relatief is en dirfd heeft de speciale waarde AT_FDCWD, dan wordt padnaam geïnterpreteerd relatief aan de huidige werkmap van het aanroepende proces (zoals mkdir()).

Als padnaam absoluut is, dan wordt mapbi genegeerd.

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

EIND WAARDE

mkdir() en mkdirat() geven nul terug bij slagen, of -1 als een fout optrad (in welk geval errno naar behoren wordt gezet).

FOUTEN

EACCES
De ouder map status schrijf toestemming niet toe voor het proces, of een van de mappen in padnaam stond zoek (uitvoer) toestemming niet toe.
EDQUOT
De gebruiker quota aan schijf blokken of inodes van het bestandssysteem is uitgeput.
EEXIST
padnaam bestaat al (niet perse een map). Dit bevat ook het geval waar padnaam een symbolische koppeling is, bungelend of niet.
EFAULT
padnaam wijst buiten de voor u toegankelijke adresruimte.
EINVAL
De uiteindelijke component ("basisnaam") van de nieuwe map padnaam is ongeldig (b.v. het bevat tekens die niet toegestaan zijn in het onderliggende bestandssysteem).
ELOOP
Teveel symbolische koppelingen werden tegengekomen bij het vaststellen van padnaam.
EMLINK
Het aantal koppelingen naar de ouder map zou LINK_MAX overschrijden.
ENAMETOOLONG
padnaam was te lang.
ENOENT
Een map deel van padnaam bestaat niet of is een loshangende symbolische koppeling.
ENOMEM
Onvoldoende kernelgeheugen voorhanden.
ENOSPC
Het apparaat dat padnaam bevat heeft geen ruimte voor een nieuwe map.
ENOSPC
De nieuwe dir kan niet gemaakt worden omdat het schijf quota van de gebruiker uitgeput is.
ENOTDIR
Een deel gebruikt als map in padnaam is in feite geen map.
EPERM
Het bestandssysteen dat padnaam bevat ondersteund de aanmaak van mappen niet.
EROFS
padnaam verwijst naar een bestand op een alleen-lezen bestandsysteem.

De volgende additionele fouten kunnen optreden in mkdirat():

EBADF
mapbi is geen geldige bestandindicator.
ENOTDIR
padnaam is relatief en mapbi is een bestandsindicatoor die naar een bestand wijst die geen map is.

VERSIES

mkdirat() werd toegevoegd aan Linux in kernel 2.6.16; bibliotheek ondersteuning werd toegevoegd aan glibc in versie 2.4.

VOLDOET AAN

mkdir(): SVr4, BSD, POSIX.1-2001, POSIX.1-2008.

mkdirat(): POSIX.1-2008.

OPMERKINGEN

Onder Linux, afgezien van de rechten bits, wordt ook het S_ISVTX mode bit gehonoreerd.

Er zijn veel ongelukkigheden in het onderliggende NFS protocol. Sommige van deze beïnvloeden mkdir().

Glibc-opmerkingen

Op ouder kernels waar mkdirat() niet beschikbaar is, valt de glibc omwikkel functie terug op het gebruik van mkdir(). Als padnaam een relatieve padnaam is, dan construeert glibc een padnaam gebaseerd op de symbolische koppeling in /proc/self/fd die overeenkomt met het dirfd argument.´

ZIE OOK

mkdir(1), chmod(2), chown(2), mknod(2), mount(2), rmdir(2), stat(2), umask(2), unlink(2), acl(5), path_resolution(7)

COLOFON

Deze pagina is onderdeel van release 5.10 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

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

9 juni 2020 Linux