> Linux Reviews > man >

close

sluit een bestandindicator


  1. close.2.man
  2. close.9.man


1. close.2.man

Manpage of CLOSE

CLOSE

Section: Linux Programmeurs Handleiding (2)
Updated: April 14, 1996
Index Return to Main Contents
 

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

Alles wat tussen `{'..`}' staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Deze handleiding uit manpages-dev 1.34 werd vertaald door JHBoersema. Email naar <manpages-nl@nl.linux.org>.

$Id: close.2,v 1.2 2001/12/21 15:31:47 joostvb Exp $


 

Index

NAAM
OVERZICHT
BESCHRIJVING
EIND WAARDE
FOUTEN
VOLDOET AAN
OPMERKINGEN
ZIE
VERTALING

This document was created by man2html using the manual pages.
Time: 17:39:20 GMT, October 23, 2013

2. close.9.man

Manpage of close

close

Section: Tcl Built-In Commands (n)
Updated: 7.5
Index Return to Main Contents



 

NAME

close - Close an open channel  

SYNOPSIS

close channelId



 

DESCRIPTION

Closes the channel given by channelId.

ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, stdout, or stderr), the return value from an invocation of open or socket, or the result of a channel creation command provided by a Tcl extension.

All buffered output is flushed to the channel's output device, any buffered input is discarded, the underlying file or device is closed, and channelId becomes unavailable for use.

If the channel is blocking, the command does not return until all output is flushed. If the channel is nonblocking and there is unflushed output, the channel remains open and the command returns immediately; output will be flushed in the background and the channel will be closed when all the flushing is complete.

If channelId is a blocking channel for a command pipeline then close waits for the child processes to complete.

If the channel is shared between interpreters, then close makes channelId unavailable in the invoking interpreter but has no other effect until all of the sharing interpreters have closed the channel. When the last interpreter in which the channel is registered invokes close, the cleanup actions described above occur. See the interp command for a description of channel sharing.

Channels are automatically closed when an interpreter is destroyed and when the process exits. Channels are switched to blocking mode, to ensure that all output is correctly flushed before the process exits.

The command returns an empty string, and may generate an error if an error occurs while flushing output. If a command in a command pipeline created with open returns an error, close generates an error (similar to the exec command.)  

EXAMPLE

This illustrates how you can use Tcl to ensure that files get closed even when errors happen by combining catch, close and return:

proc withOpenFile {filename channelVar script} {
    upvar 1 $channelVar chan
    set chan [open $filename]
    catch {
        uplevel 1 $script
    } result options
    close $chan
    return -options $options $result
}

 

SEE ALSO

file(n), open(n), socket(n), eof(n), Tcl_StandardChannels(3)

 

KEYWORDS

blocking, channel, close, nonblocking


 

Index

NAME
SYNOPSIS
DESCRIPTION
EXAMPLE
SEE ALSO
KEYWORDS

This document was created by man2html using the manual pages.
Time: 17:39:21 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - cs - da - SVENSKA - SVENSKA - SVENSKA - SVENSKA - ja - pl - ro - SVENSKA - zh_CN