NAAM
close − sluit een bestandindicator
OVERZICHT
#include <unistd.h>
int close(int bi);
BESCHRIJVING
close Sluit een bestandindicator, zodat het niet langer naar een bestand wijst en hergebruikt kan worden. Eventuele sloten {eng: locks} op het bestand die het eigendom waren van het proces worden verwijderd (onafhankelijk van de bestandindicator die gebruikt werd om het slot te krijgen).
Als bi de laatste dubbelganger van een bepaalde bestandindicator is, worden de systeem-middelen die erbij horen vrijgemaakt; als de bestandindicator de laatste verwijzing was naar een bestand dat verwijderd werd met unlink(2) dan wordt het bestand geschrapt.
EIND WAARDE
close Geeft nul bij slagen, of −1 als een fout optrad.
FOUTEN
EBADF |
{slecht bestand} bi is geen geldige open bestandindicator. |
VOLDOET AAN
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 beschrijft een extra ENOLINK fouttoestand.
OPMERKINGEN
Het niet controleren van de eindwaarde van close is een veel voorkomende -maar desondanks ernstige- programmeerfout. Bestandssysteem uitvoeringen die technieken als ’write-behind’ {nl: schrijven nadien} gebruiken om prestaties te verbeteren, kunnen veroorzaken dat write(2) slaagt, alhoewel de gegevens nog niet weggeschreven zijn. De foutstatus zou gegeven kunnen worden bij een latere write operatie, maar wordt gegarandeerd teruggegeven bij het sluiten van het bestand. Het niet controleren van de terugkeer-waarde tijdens het sluiten van een bestand kan leiden tot het stilzwijgend verdwijnen van gegevens. Dit wordt vooral veel waargenomen bij NFS, en met schijf quota.
Een succesvolle close garandeert niet dat de gegevens succesvol zijn bewaard op schijf doordat de kernel schrijven achterhoudt. Het is niet normaal voor een bestandssysteem om de buffers te spoelen als de stroom wordt gesloten. Als u zeker moet zijn dat de gegevens fysiek bewaard zijn, gebruik dan fsync(2) of sync(2). Deze kunnen u dichter bij dat doel brengen (het hangt nu verder van de schijfhardware af.)
ZIE
open(2) {openen}, fcntl(2) {bestandindicator manipuleren} shutdown(2) {uitdoen}, unlink(2) {losmaken}, fclose(3) {sluit}
VERTALING
Dit is een handleiding uit manpages-dev 1.34. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.
$Id: close.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $