C standard library :: stdio
fclose
int fclose (FILE *stream)
Denne funktion lukker filen der er assocoeret til stream. Funktionen fclose() skriver alt der evt. ligger i outputbufferen ud til filen, frigør memory allokeret til buffer, hvis denne blev allokeret automatisk og fjerner bindingen mellem stream og filen. Brug ikke stream derefter.
[CX] Funktionen fclose() skal tidsstemple filens felter for opdatering i st_ctime og st_mtime, hvis filen er skrivebar. Funktionen fclose() skal udføre det samme som close() på file descriptor som er associeret med stream.
Returnværdi
Den returnerer 0 ved success eller EOF ved fejl. [CX] Sætter errno til at indikere årsag til fejlen.
Fejl
Funktionen fclose() skal fejle hvis:
- [EAGAIN]
- [CX] NONBLOCK flaget er sat for file descriptor indlejret i stream og tråden er forsinket i skrive operationen.
- [EBADF]
- [CX] File descriptor indlejret i stream er ikke valid.
- [EFBIG]
- [CX] Et forsøg på at skrive til en fil der overstiger maksimum fil strørrelse.
- [EFBIG]
- [CX] Et forsøg på at skrive til en fil der overstiger processens maksimum fil strørrelse.
- [EFBIG]
- [CX] Filen er en almindelig fil og et forsøg på at skrive til filen udover maksimum offset associeret med den tilhørende stream.
- [EINTR]
- [CX] Funktionen fclose() blev afbrudt af et signal.
- [EIO]
- [CX] Processen er et medlem af en baggrundsprocess-gruppe og forsøger at skrive til dens kontrollerende terminal, TOSTOP er sat, processen hverken ignorerer eller blokerer ikke SIGITOU, og process-gruppen er forælderløs. Denne fejl kan også returneres ved implementerings-definerede forhold.
- [ENOSPC]
- [CX] Der er ikke mere plads tilbage på enheden som holder filen.
- [EPIPE]
- [CX] Et forsøg på at skrive til en pipe eller FIFO der ikke er åben for læsning af nogen andre processer. Et SIGPIPE signal skal også sendes til tråden.
Funktionen fclose() kan fejle hvis:
- [ENXIO]
- [CX] En anmodning var lavet til en ikke eksisterende enhed eller enhenden er uegnet til anmodningen.
Eksempel