Provided by: manpages-ro-dev_4.28.0-2_all 

NUME
fsync, fdatasync, fdatasync - sincronizează starea din memorie a unui fișier cu dispozitivul de stocare
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <unistd.h>
int fsync(int fd);
int fdatasync(int fd);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
fsync():
glibc 2.16 and later:
Nu este necesar să se definească macrocomenzi de testare a caracteristicilor
glibc până la și inclusiv 2.15:
_BSD_SOURCE || _XOPEN_SOURCE
|| /* Începând cu glibc 2.8: */ _POSIX_C_SOURCE >= 200112L
fdatasync():
_POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500
DESCRIERE
fsync() transferă („golește”) toate datele modificate din interiorul memoriei (adică paginile modificate
ale memoriei cache) pentru fișierul la care face referire descriptorul de fișier fd către dispozitivul de
disc (sau alt dispozitiv de stocare permanentă), astfel încât toate informațiile modificate să poată fi
recuperate chiar dacă sistemul se blochează sau este repornit. Această operație include scrierea sau
golirea unei memorii cache pe disc, dacă este prezentă. Apelul se blochează până când dispozitivul
raportează că transferul a fost finalizat.
Pe lângă golirea datelor din fișier, fsync() golește și informațiile privind metadatele asociate cu
fișierul (a se vedea inode(7)).
Apelarea fsync() nu asigură în mod necesar că intrarea din directorul care conține fișierul a ajuns și ea
pe disc. Pentru aceasta, este necesar un fsync() explicit pe un descriptor de fișier pentru director.
fdatasync() este similar cu fsync(), dar nu șterge metadatele modificate, cu excepția cazului în care
aceste metadate sunt necesare pentru a permite ca o recuperare ulterioară a datelor să fie gestionată
corect. De exemplu, modificările aduse la st_atime sau st_mtime (ora ultimului acces și, respectiv, ora
ultimei modificări; a se vedea inode(7)) nu necesită golirea deoarece nu sunt necesare pentru ca o citire
ulterioară a datelor să fie gestionată corect. Pe de altă parte, o modificare a mărimii fișierului
(st_size, așa cum se face, de exemplu, prin ftruncate(2)), ar necesita o golire a metadatelor.
Scopul lui fdatasync() este de a reduce activitatea pe disc pentru aplicațiile care nu au nevoie ca toate
metadatele să fie sincronizate cu discul.
VALOAREA RETURNATĂ
În caz de succes, aceste apeluri de sistem returnează zero. În caz de eroare, se returnează -1, iar errno
este configurată pentru a indica eroarea.
ERORI-IEȘIRE
EBADF descriptor-fișier nu este un descriptor de fișier deschis valid.
EINTR Apelul a fost întrerupt de un semnal; a se vedea signal(7).
EIO S-a produs o eroare în timpul sincronizării. Această eroare se poate referi la datele scrise în
alt descriptor de fișier pentru același fișier.6 Începând cu Linux 4.13, erorile de rescriere vor
fi raportate la toți descriptorii de fișiere care ar fi putut scrie datele care au declanșat
eroarea. Unele sisteme de fișiere (de exemplu, NFS) urmăresc îndeaproape ce date au trecut prin
fiecare descriptor de fișier și oferă o raportare mai precisă. Alte sisteme de fișiere (de
exemplu, cele mai multe sisteme de fișiere locale) raportează erorile la toți descriptorii de
fișiere care au fost deschiși asupra fișierului în momentul în care a fost înregistrată eroarea.
ENOSPC Spațiul pe disc a fost epuizat în timpul sincronizării.
EROFS
EINVAL fd este asociat la un fișier special (de exemplu, o conductă, FIFO sau un soclu) care nu acceptă
sincronizarea.
ENOSPC
EDQUOT fd este asociat la un fișier pe NFS sau pe un alt sistem de fișiere care nu alocă spațiu în
momentul unui apel de sistem write(2), iar o scriere anterioară a eșuat din cauza spațiului de
stocare insuficient.
VERSIUNI
Pe sistemele POSIX pe care este disponibil fdatasync(), _POSIX_SYNCHRONIZED_IO este definit în <unistd.h>
la o valoare mai mare decât 0; (a se vedea, de asemenea, sysconf(3)).
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001, 4.2BSD.
În Linux 2.2 și versiunile anterioare, fdatasync() este echivalent cu fsync() și, prin urmare, nu are
niciun avantaj de performanță.
Implementările fsync() din nucleele mai vechi și sistemele de fișiere mai puțin utilizate nu știu cum să
golească memoria cache de pe disc. În aceste cazuri, memoriile cache de disc trebuie dezactivate folosind
hdparm(8) sau sdparm(8) pentru a garanta o funcționare sigură.
În AT&T UNIX System V Release 4, fd trebuie să fie deschis pentru scriere. Acest lucru este în sine
incompatibil cu interfața BSD originală și este interzis de POSIX, dar totuși supraviețuiește în HP-UX și
AIX.
CONSULTAȚI ȘI
sync(1), bdflush(2), open(2), posix_fadvise(2), pwritev(2), sync(2), sync_file_range(2), fflush(3),
fileno(3), hdparm(8), mount(8)
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Pagini de manual de Linux 6.9.1 2 mai 2024 fsync(2)