NAAM
rename − verander de naam of plaats van een bestand
OVERZICHT
#include <stdio.h>
int rename(const char *oudpad, const char *nieuwpad);
BESCHRIJVING
rename hernoemd een bestand, het naar andere directories verplaatsend als nodig.
Elke andere harde koppeling naar het bestand (gemaakt met link(2)) blijft onaangetast.
Als nieuwpad al bestaat wordt het automatisch vervangen (afhankelijk van een paar voorwaarden - zie FOUTEN onder), zodat er geen moment is waarop een ander proces dat toegang tot nieuwpad probeert te krijgen het zal missen.
Als nieuwpad bestaat maar de handeling faalt om een of andere reden, dan garandeert rename , nieuwpad op zijn plaats te laten.
Maar: bij het overschrijven zal er waarschijnlijk een interval zijn waarin oudpad en nieuwpad allebei naar het bestand dat hernoemd wordt wijzen.
Als oudpad naar een symbolische link wijst, wordt de koppeling hernoemd; als nieuwpad naar een symbolische link wijst wordt de koppeling overschreven.
TERUGGEEF WAARDE
Bij success wordt nul teruggegeven. Bij falen wordt −1 teruggegeven, en wordt errno naar behoren gezet.
FOUTEN
EISDIR |
{is dir} nieuwpad is een bestaande dir, maar oudpad is geen dir. | ||
EXDEV |
{? apparaat} oudpad en nieuwpad zitten niet op hetzelfde bestandsysteem. |
ENOTEMPTY of EEXIST
{niet leeg} {bestaat} nieuwpad is een niet-lege dir, het bevat andere ingangen dan "." en "..".
EBUSY |
{bezig} Het hernoemen faalde omdat oudpad of nieuwpad een dir is die in gebruik is door een of ander proces (misschien als huidige werk-directorie, of als root {eng: root} dir, of omdat het voor schrijven open was) of het is in gebruik door het systeem (bijvoorbeeld als mount {eng: mount} punt), en het systeem beschouwd dit als een fout. (Merk op dat er geen vereiste is om EBUSY terug te geven is in deze gevallen - er is niets mis met het hoe-dan-ook doen van de hernoeming - maar het wordt toegestaan om EBUSY terug te geven als het systeem dergelijke situaties niet anders kan afhandelen. | ||
EINVAL |
{ongeldig} De nieuwe padnaam bevat een voorvoegsel van de oude, of, algemener, een poging werd gedaan om een dir een onderdir van zichzelf te maken. | ||
EMLINK |
{max verbind} oudpad heeft al het maximum aantal koppelingen naar zich toe, of het was een dir en de dir die nieuwpad bevat heeft al het maximum aantal koppelingen. |
ENOTDIR
{geen dir} Een deel gebruikt als een dir in oudpad of nieuwpad is in feite geen dir. Of, oudpad is een dir, en nieuwpad bestaat maar is geen dir.
EFAULT |
{fout} oudpad of nieuwpad wijzen buiten door u toegankelijke adres ruimte. | ||
EACCES |
{toegang} Schrijf toegang in de dir die oudpad of nieuwpad bevat is niet toegestaan voor het proces zijn geldende uid, of een van de directories in oudpad of nieuwpad liet geen zoek (uitvoer) toestemming toe, of oudpad was een dir maar liet geen schrijftoestemming toe (benodigd om de .. ingang bij te werken). |
EPERM of EACCES
{toestemming} {toegang} De dir die oudpad bevat heeft het sticky bit gezet en het proces zijn geldige uid is niet dat van root, nog het uid van het bestand dat geschrapt zal worden, nog dat van de dir die het bevat, of nieuwpad is een bestaand bestand en de dir die het bevat heeft het sticky bit gezet maar het geldige uid van het proces is niet dat van root nog het uid van het bestand dat verplaatst zal worden nog dat van de dir die het bevat, of het bestandsysteem waar padnaam op zit ondersteund de gevraagde hernoem-soort niet.
ENAMETOOLONG
{naam te lang} oudpad of nieuwpad is te lang.
ENOENT |
{geen ingang} Een dir deel van oudpad of nieuwpad bestaat niet of is een loshangende symbolische koppeling. | ||
ENOMEM |
{geen geheugen} Onvoldoende besturingssysteem geheugen voorhanden. | ||
EROFS |
{alleen-lezen b.s.} Het bestand is op een alleen-lezen bestandsysteem. | ||
ELOOP |
{cirkel} Teveel symbolische koppelingen werden tegengekomen bij het "oplossen" van oudpad of nieuwpad. | ||
ENOSPC |
{geen ruimte} Het apparaat dat het bestand bevat heeft geen ruimte voor een nieuwe dir ingang. |
VOLDOET AAN
POSIX, 4.3BSD, ANSI C
BUGS
Op NFS bestandsystemen kun je niet aannemen dat als een handeling mislukte, het bestand niet hernoemd werd. Als de server de hernoem-handeling doet en gecrasht {eng: crashes} dan zal de herverstuurde RPC die afgehandeld zal worden als de server het weer doet, een fout veroorzaken. Van toepassing wordt verwacht hiermee om te gaan. Zie link(2) voor gelijksoortige problemen.
ZIE
link(2) {verbind}, unlink(2) {maak-los}, symlink(2) {symbolische koppeling}, mv(1) {verplaats}
VERTALING
Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.
$Id: rename.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $