Provided by: manpages-ro-dev_4.27.0-1_all bug

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)