fclose - zamknięcie strumienia
Standardowa biblioteka C (
libc,
-lc)
#include <stdio.h>
int fclose(FILE *stream);
Funkcja
fclose() odłącza strumień
stream od
pliku (zapisując wszystkie zbuforowane dane wyjściowe za
pomocą
fflush(3)) i zamyka deskryptor pliku przypisanego do
strumienia.
Zachowanie funkcji
fclose() nie jest zdefiniowane, jeśli parametr
stream nie jest poprawnym wskaźnikiem lub jeśli
został już przekazany do wcześniejszego wywołania
fclose().
Jeśli funkcja zakończyła się pomyślnie,
zwracane jest 0. W przeciwnym przypadku zwracana jest wartość
EOF, a
errno przyjmuje wartość,
wskazującą na rodzaj błędu. W każdym
przypadku następna próba dostępu
(włączając w to kolejne wywołanie
fclose())
do strumienia prowadzi do niezdefiniowanego zachowania.
- EBADF
- Deskryptor pliku określający stream
nie jest poprawny.
Funkcja
fclose() może także zawieść i
ustawić wartość
errno na dowolny
błąd wymieniony w opisie funkcji
close(2),
write(2) lub
fflush(3).
Informacje o pojęciach używanych w tym rozdziale można
znaleźć w podręczniku
attributes(7).
Interfejs |
Atrybut |
Wartość |
fclose() |
Bezpieczeństwo wątkowe |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
Należy zauważyć, że
fclose()
opróżnia jedynie bufory w przestrzeni użytkownika
obsługiwane przez bibliotekę C. Aby upewnić się,
że dane zostały fizycznie zapisane na dysku, należy
zrzucić również bufory jądra, np. za pomocą
sync(2) lub
fsync(2).
close(2),
fcloseall(3),
fflush(3),
fileno(3),
fopen(3),
setbuf(3)
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Adam Byrtek <
[email protected]>, Andrzej Krzysztofowicz
<
[email protected]> i Robert Luberda <
[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją.
Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z
GNU
General Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy
zgłaszać na adres listy dyskusyjnej
[email protected]