sync_file_range(2) System Calls Manual sync_file_range(2) NAVN sync_file_range - synkroniser et filsegment med disken BIBLIOTEK C-standardbibliotek (libc, -lc) SYNOPSIS #define _GNU_SOURCE /* Se feature_test_macros(7) */ #define _FILE_OFFSET_BITS 64 #include int sync_file_range(int fd, off_t forskydning, off_t nbytes, unsigned int flag); BESKRIVELSE sync_file_range() gor det muligt at kontrollere detaljeret under synkronisering af den abne fil refereret til af fildeskriptoren fd med disken. forskydning er den startende byte for filintervallet, der skal synkroniseres. nbytes angiver laengden af intervallet, der skal synkroniseres, i byte; hvis nbytes er nul, sa bliver alle byte fra forskydning helt til slutningen af filen synkroniseret. Synkronisering er i enehder af systemsidestorrelsen: forskydning afrundes ned til en sidegraense; (forskydning+nbytes-1) afrundes op til en sidegraense. Bit-maske-argumentet flag kan inkludere enhver af de folgende vaerdier: SYNC_FILE_RANGE_WAIT_BEFORE Vent ved write-out (skriv-ud) pa alle sider i det angivne interval, der allerede er blevet sendt til enhedsdriveren for write-out for udforelse af en skrivning. SYNC_FILE_RANGE_WRITE Igangsaet >>write-out<< (skriv-ud) ud for alle beskidte sider i det angivne interval, der ikke i ojeblikket er indsendt >>write-out<<. Bemaerk at selv dette kan blokere, hvis du forsoger at skrive mere end foresporgslens ko-storrelse). SYNC_FILE_RANGE_WAIT_AFTER Vent ved write-out for alle sider i intervallet for udforelse af en skrivning. Angivelse af flag som 0 er tilladt, som en no-op. Advarsel Dette systemkald er ekstremt farligt bor ikke bruges i flytbare programmer. Ingen af disse operationer skriver filens metadata ud. Derfor, med mindre at programmet strengt udforer overskrivninger af allerede igangsatte diskblokke, er der ingen garantier for at dataene vil vaere tilgaengelige efter et nedbrud. Der er ingen brugerflade til at ivse om en skrivning bare er en overskrivning. Pa filsystemer, der bruger copy-on-write-semantik (f.eks. btrfs) er en overskrivning af eksisterende allokerede blokke umulig. Nar der skrives i et praeallokeret rum, sa kraever mange filsystemer ogsa kald til blokallokeringen, som dette systemkald ikke synkroniserer ud til disken. Dette systemkald tommer ikke mellemlageret for diskskrivningen og tilbyder derfor ingen dataintegritet pa systemer med flygtige mellemlagre for diskskrivninger. Nogle detaljer SYNC_FILE_RANGE_WAIT_BEFORE og SYNC_FILE_RANGE_WAIT_AFTER vil registrere eventuelle I/O-fejl eller ENOSPC-betingelser og vil returnere disse til kalderen. Nyttige kombinationer af flag-delene er: SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE Sikrer at alle sider i det angivne interval, der var beskidte da sync_file_range() blev kaldt, er placeret under write-out. Dette er en start skrivning for dataintegritet-operation. SYNC_FILE_RANGE_WRITE Start write-out for alle beskidte sider i det angivne interval, der ikke er til stede under write-out. Dette er en asynkron tom til disk-operation. Er ikke egnet for dataintegritetsoperationer. SYNC_FILE_RANGE_WAIT_BEFORE (eller SYNC_FILE_RANGE_WAIT_AFTER) Vent pa fuldforelse af write-out for alle sider det angivne interval. Dette kan bruges efter en tidligere SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE-operation for at vente pa fuldforelse af den operation og indhente dens resultat. SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER Dette er en skriv for dataintegritet-operation, der vil sikre at alle sider i det angivne interval, der var beskidte da sync_file_range() blev kaldt sendes til disken. RETURVAERDI Ved succes returnerer sync_file_range() 0; ved fejl returneres -1 og errno angives for at indikere fejlen. FEJL EBADF fd er ikke en gyldig filbeskrivelse. EINVAL flag angiver en ugyldig del; eller forskydning eller nbytes er ugyldig. EIO I/O-fejl. ENOMEM Ikke nok hukommelse. ENOSPC Ikke nok displads. ESPIPE fd refererer til noget udover en regulaer fil, en blokenhed, eller en mappe. VERSIONER sync_file_range2() Nogle arkitekturer (f.eks., PowerPC, ARM) kraever at 64-bit argumenterne er justeret i et egnet registerpar. Pa sadanne arkitekturer vil kaldsignaturen for sync_file_range() vist i SYNOPSIS tvinge et register til at blive spildt som mellemrum mellem argumenterne fd og offset. (Se syscall(2) for detaljer). Disse arkitekturer definerer derfor et andet systemkald, der sorterer argumenterne pa en egnet made: int sync_file_range2(int fd, unsigned int flag, off_t forskydning, off_t nbytes); Opforelsen for dette systemkald er ellers praecis den samme som sync_file_range(). STANDARDER Linux. HISTORIK Linux 2.6.17. sync_file_range2() Et systemkald med denne signatur kom forste gang pa ARM-arkitekturen i Linux 2.6.20, med navnet arm_sync_file_range(). Blev omdobt i Linux 2.6.22, da det analoge systemkald blev tilfojet for PowerPC. Pa arkitekturer hvor glibc-understottelse tilbydes omslutter glibc gennemsigtigt sync_file_range2() under navnet sync_file_range(). NOTER _FILE_OFFSET_BITS bor defineres som 64 i kode, der anvender adressen for sync_file_range, hvis koden er taenkt som vaerende flytbar for traditionelle 32-bit x86- og ARM-platforme hvor off_t's bredde er 32 bit som standard. SE OGSA fdatasync(2), fsync(2), msync(2), sync(2) OVERSAETTELSE Oversaettere af denne manual til dansk Joe Hansen Denne oversaettelse er gratis dokumentation; laes GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR. Hvis du stoder pa fejl i oversaettelsen af denne vejledning, skal du sende en besked til . Linux man-pages 6.18 8. februar 2026 sync_file_range(2)