NAVN
- Provided by: manpages-da-dev (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
C-standardbibliotek (libc, -lc)
#define _GNU_SOURCE /* Se feature_test_macros(7) */ #define _FILE_OFFSET_BITS 64 #include <fcntl.h>
int sync_file_range(int fd, off_t forskydning, off_t nbytes,
unsigned int flag);
sync_file_range() gør det muligt at kontrollere detaljeret under synkronisering af den åbne fil refereret til af fildeskriptoren fd med disken.
forskydning er den startende byte for filintervallet, der skal synkroniseres. nbytes angiver længden af intervallet, der skal synkroniseres, i byte; hvis nbytes er nul, så bliver alle byte fra forskydning helt til slutningen af filen synkroniseret. Synkronisering er i enehder af systemsidestørrelsen: forskydning afrundes ned til en sidegrænse; (forskydning+nbytes-1) afrundes op til en sidegrænse.
Bit-maske-argumentet flag kan inkludere enhver af de følgende værdier:
Angivelse af flag som 0 er tilladt, som en no-op.
Dette systemkald er ekstremt farligt bør ikke bruges i flytbare programmer. Ingen af disse operationer skriver filens metadata ud. Derfor, med mindre at programmet strengt udfører overskrivninger af allerede igangsatte diskblokke, er der ingen garantier for at dataene vil være tilgængelige efter et nedbrud. Der er ingen brugerflade til at ivse om en skrivning bare er en overskrivning. På filsystemer, der bruger copy-on-write-semantik (f.eks. btrfs) er en overskrivning af eksisterende allokerede blokke umulig. Når der skrives i et præallokeret rum, så kræver mange filsystemer også kald til blokallokeringen, som dette systemkald ikke synkroniserer ud til disken. Dette systemkald tømmer ikke mellemlageret for diskskrivningen og tilbyder derfor ingen dataintegritet på systemer med flygtige mellemlagre for diskskrivninger.
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:
Ved succes returnerer sync_file_range() 0; ved fejl returneres -1 og errno angives for at indikere fejlen.
Nogle arkitekturer (f.eks., PowerPC, ARM) kræver at 64-bit argumenterne er justeret i et egnet registerpar. På sådanne 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 på en egnet måde:
int sync_file_range2(int fd, unsigned int flag,
off_t forskydning, off_t nbytes);
Opførelsen for dette systemkald er ellers præcis den samme som sync_file_range().
Linux.
Linux 2.6.17.
Et systemkald med denne signatur kom første gang på ARM-arkitekturen i Linux 2.6.20, med navnet arm_sync_file_range(). Blev omdøbt i Linux 2.6.22, da det analoge systemkald blev tilføjet for PowerPC. På arkitekturer hvor glibc-understøttelse tilbydes omslutter glibc gennemsigtigt sync_file_range2() under navnet sync_file_range().
_FILE_OFFSET_BITS bør defineres som 64 i kode, der anvender adressen for sync_file_range, hvis koden er tænkt som værende flytbar for traditionelle 32-bit x86- og ARM-platforme hvor off_t's bredde er 32 bit som standard.
Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>
Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.
Hvis du støder på fejl i oversættelsen af denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.