Provided by: manpages-nl-dev_4.15.0-9_all bug

NAAM

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

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.

       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.

VOLDOET AAN

       POSIX.1-2001, POSIX.1-2008, 4.3BSD.

       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).)

OPMERKINGEN

       Op sommige UNIX systemen (maar niet Linux), moet fd een  schrijfbare  bestandsbeschrijving
       zijn.

       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.

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)

COLOFON

       Deze   pagina  is  onderdeel  van  release  5.13  van  het  Linux  man-pages-project.  Een
       beschrijving van het project, informatie over het melden van bugs en  de  nieuwste  versie
       van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.