.\" -*- coding: UTF-8 -*-
.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) and
.\" and Copyright 2006 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified 21 Aug 1994 by Michael Chastain <mec@shell.portal.com>:
.\"   Removed note about old libc (pre-4.5.26) translating to 'sync'.
.\" Modified 15 Apr 1995 by Michael Chastain <mec@shell.portal.com>:
.\"   Added `see also' section.
.\" Modified 13 Apr 1996 by Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\"   Added remarks about fdatasync.
.\" Modified 31 Jan 1997 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 18 Apr 2001 by Andi Kleen
.\"   Fix description to describe what it really does; add a few caveats.
.\" 2006-04-28, mtk, substantial rewrite of various parts.
.\" 2012-02-27 Various changes by Christoph Hellwig <hch@lst.de>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH fsync 2 "5 lutego 2023 r." "Linux man\-pages 6.03" 
.SH NAZWA
fsync, fdatasync \- synchronizuje pełny, wewnątrzrdzeniowy stan pliku z
zapisanym na dysku
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <unistd.h>\fP
.PP
\fBint fsync(int \fP\fIfd\fP\fB);\fP
.PP
\fBint fdatasync(int \fP\fIfd\fP\fB);\fP
.fi
.PP
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.PP
.nf
\fBfsync\fP():
    glibc 2.16 i późniejsze:
        Nie jest konieczne definiowanie makr
    glibc do 2.15 włącznie:
        _BSD_SOURCE || _XOPEN_SOURCE
            || /* Od glibc 2.8: */ _POSIX_C_SOURCE >= 200112L
.fi
.PP
\fBfdatasync\fP():
.nf
    _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500
.fi
.SH OPIS
\fBfsync\fP() przenosi (\[Bq]opróżnia\[rq]) wszystkie zmodyfikowane
wewnątrzrdzeniowo dane (tj.  zmodyfikowane strony bufora pamięci podręcznej)
pliku, do którego odnosi się deskryptor pliku \fIfd\fP na dysk (lub inny trwały
nośnik), dzięki czemu wszystkie zmienione informacje mogą być pozyskane
nawet w przypadku załamania lub przeładowania systemu. Obejmuje to zapis
bezpośredni i opróżnienie bufora dysku (jeśli istnieje). Wywołanie blokuje,
do momentu gdy urządzenie poinformuje o zakończeniu transferu.
.PP
Oprócz opróżnienia plików danych, \fBfsync\fP() opróżnia również metadane
związane z plikiem (zob. \fBinode\fP(7)).
.PP
Wywołanie \fBfsync\fP nie gwarantuje, że wpis w katalogu, zawierający
informacje o pliku, również zostanie zapisany na dysku. Aby to osiągnąć,
wymagane jest jawne wywołanie \fBfsync\fP na deskryptorze pliku dla katalogu.
.PP
\fBfdatasync\fP() jest podobne do \fBfsync\fP(), lecz nie opróżnia zmodyfikowanych
metadanych, chyba że są one konieczne do kolejnego pomyślnego pobrania
danych. Przykładowo, zmiana \fIst_atime\fP lub \fIst_mtime\fP (odpowiednio, czasu
dostępu i czasu ostatniej modyfikacji; zob. \fBinode\fP(7)) nie wymaga
opróżnienia, ponieważ nie jest to konieczne, aby następny odczyt danych
został pomyślnie obsłużony. Z drugiej strony, zmiana rozmiaru pliku
(\fIst_size\fP, dokonana na przykład przez \fBftruncate\fP(2)), wymagałaby
opróżnienia metadanych.
.PP
Celem \fBfdatasync\fP() jest redukcja aktywności dysku w przypadku aplikacji,
które nie wymagają, aby wszystkie metadane były zsynchronizowane z tymi na
dysku.
.SH "WARTOŚĆ ZWRACANA"
W przypadku powodzenia, te wywołania zwracają zero. W razie wystąpienia
błędu zwracane jest \-1 i ustawiane jest \fIerrno\fP wskazując błąd.
.SH BŁĘDY
.TP 
\fBEBADF\fP
\fIfd\fP nie jest prawidłowym otwartym deskryptorem pliku.
.TP 
\fBEINTR\fP
Funkcja przerwana przez sygnał; zob. \fBsignal\fP(7).
.TP 
\fBEIO\fP
.\" commit 088737f44bbf6378745f5b57b035e57ee3dc4750
Wystąpił błąd podczas synchronizacji. Błąd może odnosić się do zapisu danych
dokonanych do innego deskryptora pliku tego samego pliku. Od Linuksa 4.13,
błędy z bufora zapisu będą zgłaszane do wszystkich deskryptorów pliku, które
mogły zapisywać dane wyzwalające błąd. Niektóre systemy plików (np. NFS)
ściśle pilnują, która dane przeszły przez który deskryptor pliku, co daje
dokładniej zgłaszane błędy. Inne systemy plików (np. większość lokalnych)
zgłoszą błąd do wszystkich deskryptorów pliku, które były otwarte na pliku,
w momencie odnotowania błędu.
.TP 
\fBENOSPC\fP
Wyczerpano miejsce na dysku podczas synchronizacji.
.TP 
\fBEROFS\fP, \fBEINVAL\fP
\fIfd\fP jest powiązany ze specjalnym plikiem (np. potokiem, FIFO lub
gniazdem), który nie obsługuje synchronizacji.
.TP 
\fBENOSPC\fP, \fBEDQUOT\fP
\fIfd\fP jest skojarzony z plikiem na NFS lub na innym systemie plików, który
nie przydziela miejsca w momencie wywołania systemowego \fBwrite\fP(2) i któryś
z poprzednich zapisów nie powiódł się ze względu na brak miejsca na dysku.
.SH STANDARDY
POSIX.1\-2001, POSIX.1\-2008, 4.3BSD.
.PP
.\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
.\" -1: unavailable, 0: ask using sysconf().
.\" glibc defines them to 1.
W systemach POSIX, na których dostępny jest \fBfdatasync\fP(),
\fB_POSIX_SYNCHRONIZED_IO\fP jest zdefiniowany w \fI<unistd.h>\fP na
wartość większą od 0 (zob. też \fBsysconf\fP(3)).
.SH UWAGI
W niektórych systemach Uniksowych (ale nie w Linuksie) \fIfd\fP musi być
\fIzapisywalnym\fP deskryptorem pliku.
.PP
W Linuksie 2.2 i wcześniejszych, \fBfdatasync\fP() jest równoważny \fBfsync\fP() i
nie daje żadnych korzyści pod względem wydajności.
.PP
Implementacja \fBfsync\fP() na starszych jądrach i rzadziej używanych systemach
plików nie potrafi opróżniać buforów dysku. W takich przypadkach konieczne
jest wyłączenie buforów dysku za pomocą \fBhdparm\fP(8) lub \fBsdparm\fP(8), aby
zagwarantować bezpieczne wykonanie.
.SH "ZOBACZ TAKŻE"
\fBsync\fP(1), \fBbdflush\fP(2), \fBopen\fP(2), \fBposix_fadvise\fP(2), \fBpwritev\fP(2),
\fBsync\fP(2), \fBsync_file_range\fP(2), \fBfflush\fP(3), \fBfileno\fP(3), \fBhdparm\fP(8),
\fBmount\fP(8)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
