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

NAAM

       fsync, fdatasync - synchroniseer de bestandsdata in het geheugen met het opslag apparaat

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

SAMENVATTING

       #include <unistd.h>

       int fsync(int bi);

       int fdatasync(int bi);

   Feature Test Macro´s eisen in  glibc (zie feature_test_macros(7)):

       fsync():
           Glibc 2.16 en later:
               Geen feature test macros moet worden gedefinieerd
           Glibc tot en met 2.15:
               _BSD_SOURCE || _XOPEN_SOURCE
                   || /* Vanaf glibc 2.8: */ _POSIX_C_SOURCE >= 200112L

       fdatasync():
           _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500

BESCHRIJVING

       fsync()  transfereert  ("spoelt") alle gewijzigde data in het geheugen (m.a.w. gemodificeerd buffer cache
       pagina´s) van het bestand aangewezen door de bestandsbeschrijving fd naar het  schijf  apparaat  (of  een
       ander  permanent  opslag  apparaat)  zodat  alle gewijzigde informatie kan worden opgehaald zelfs als het
       systeem vastloopt of wordt geherstart.  Dit is omvat ook schrijven via  of  doorspoelen  van  een  schijf
       cache  als  die  aanwezig is).  De aanroep blokkeert totdat het apparaat meldt dat de overdracht compleet
       is.

       Net zoals het doorspoelen van de bestandsdata, spoelt fsync() ook de metadata informatie die geassocieerd
       zijn met het bestand door (zie inode(7)).

       Het aanroepen van fsync() is geen garantie dat de ingang in de map die het bestand bevat ook op de schijf
       is terecht gekomen. Hiervoor is een expliciete aanroep van fsync() met de bestandsbeschrijving  voor  die
       map ook nodig.

       fdatasync()  is  vergelijkbaar  met  fsync()  maar  spoelt  gemodificeerde  metadata niet door tenzij die
       metadata nodig is om een volgende  data  lees  slag  correct  af  te  kunnen  afhandelen.  Bij  voorbeeld
       veranderingen  aan  st_atime of st_mtime (respectievelijk tijd van laatste toegang en tijd van de laatste
       wijziging, zie inode(7)) vereisen niet het doorspoelen omdat ze niet nodig zijn om de volgende data  lees
       actie  correct  af  te  handelen.  Aan de andere kant zou een verandering aan de bestandsgrootte (st_size
       zoals gemaakt door zeg truncate(2)) het doorspoelen van de metadata vereisen.

       Het doel van fdatasync() is om schijf activiteit te verminderen voor applicaties die  niet  vereisen  dat
       metadata gesynchroniseerd wordt met de schijf.

EIND WAARDE

       Bij succes retourneren deze systeem aanroepen. Bij falen wordt -1 teruggegeven, en errno gezet om de fout
       aan te duiden.

FOUTEN

       EBADF  bi is niet een geldige open-voor-schrijven bestandindicator.

       EINTR  De functie werd onderbroken door een signaal; zie signal(7).

       EIO    Een  fout  trad op gedurende synchroniseren. Deze fout kan verband houden met data geschreven naar
              een andere bestand beschrijving op hetzelfde bestand. Vanaf  Linux  4.13  worden  fouten  van  een
              schrijf-terug  actie  gerapporteerd  naar  alle  bestandsbeschrijvingen die data geschreven kunnen
              hebben die de fout op riep. Sommige bestandssystemen (b.v. NFS) houden nauwgezet  bij  welke  data
              kwam   via   welke   bestandsbeschrijving   en  rapporteren  dientengevolge  nauwkeuriger.  Andere
              bestandsystemen, meestal de lokale) zullen fouten naar alle bestandsbeschrijvingen rapporteren die
              open stonden op het bestand toen de fout werd opgetekend.

       ENOSPC De schijfruimte raakte uitgeput tijdens het synchroniseren.

       EROFS
       EINVAL bi is gebonden aan een speciaal bestand (b.v. een pijp, FIFO of  socket)  dat  synchronseren  niet
              ondersteund.

       ENOSPC
       EDQUOT bi  is  gebonden  aan  een bestand op NFS of een ander bestandsysteem dat geen ruimte toewijst ten
              tijde van de write(2) systeem aanroep, en een eerdere schrijf  actie  faalde  vanwege  onvoldoende
              schijfruimte.

VERSIES

       Op  POSIX  systemen  op  welke  fdatasync()  beschikbaar  is,  is  _POSIX_SYNCHRONIZED_IO gedefinieerd in
       <unistd.h> met een waarde groter dan 0.  (Zie ook sysconf(3).)

VOLDOET AAN

       POSIX.1-2008.

GESCHIEDENIS

       POSIX.1-2001, 4.2BSD.

       In Linux 2.2 en eerder is fdatasync() equivalent aan fsync() en heeft daarom geen prestatie voordeel.

       De fsync() implementatie in oudere kernels en minder gebruikte  bestandssystemen  weet  niet  hoe  schijf
       caches door te spoelen. In deze gevallen moeten disk caches worden uitgezet door gebruik van hdparm(8) of
       sdparm(8) om een veilige operatie te garanderen.

       Onder  AT&T  UNIX  System V Release 4 dient fd te worden geopend voor schrijven. Dit is in zich zelf niet
       compatibel met het originele BSD interface en is verboden door POSIX, maar  is  desondanks  overleeft  in
       HP-UX en AIX.

ZIE OOK

       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)

VERTALING

       De Nederlandse vertaling van deze handleiding is geschreven door Jos  Boersema  <joshb@xs4all.nl>,  Mario
       Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

       Deze  vertaling  is  vrije  documentatie;  lees  de GNU General Public License Version 3 of later over de
       Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

       Indien U fouten in de vertaling van deze handleiding zou  vinden,  stuur  een  e-mail  naar  debian-l10n-
       dutch@lists.debian.org.

Linux man-pagina's 6.9.1                           2 mei 2024                                           fsync(2)