C Programovanie

Ako používať systémové volanie Fsync v C

Ako používať systémové volanie Fsync v C

Fsync sa používa na koordináciu základného stavu súboru s akýmkoľvek úložným zariadením. Systémové volanie fsync () prechádza („vyprázdňuje“) všetok zmenený vnútorný obsah (i.e., zmenená vyrovnávacia pamäť pre) deskriptor súborov fd na disk (alebo akékoľvek iné trvalé úložné zariadenie), kde taký súbor zostáva. Dokonca vyčistí aj podrobnosti súboru. Systémové volanie fsync funguje na jednom súbore. Všetky aktualizácie súboru budú vyprázdnené. Ak je v rovnakom súbore upravených niekoľko úloh, systémové spojenie fsync bude pozastavené pred prenesením všetkých aktualizácií na disk. Ak systém oznámi, že konverzia je úspešná, hovor bude blokovaný. Použitie fsync () nezaručuje, že sa na disk pravdepodobne dostalo aj zahrnutie súboru do súborového systému. Na to je však potrebný vhodný fsync () v deskriptore súboru priečinka.

Podmienky inštalácie:

Systémové volanie fsync teda na svoju prácu vyžaduje inštaláciu niektorých knižníc. Ak chce niekto skontrolovať ďalšie informácie týkajúce sa príkazu fsync, musí mať vo svojom systéme Linux nainštalované balíčky manpages-dev. Uvidíme teda, ako na to. Pomocou klávesovej skratky Ctrl + Alt + T na klávesnici spustite terminál príkazového riadku systému Linux. Teraz, ak chcete nainštalovať balík manpages-dev, vyskúšajte nasledujúci príkaz apt install, za ktorým nasleduje balíček s názvom „manpages-dev“. Inštalácia bude vyžadovať heslo vášho účtu pre systém Linux. Takže, zadajte svoje súčasné heslo do systému Linux a stlačte kláves Enter na klávesnici. Rýchlo spustí inštaláciu a konfiguráciu manuálových stránok vo vašom systéme Linux. Sadnite si, kým nedokončí proces inštalácie.

$ sudo apt install manpages-dev

Po inštalácii môžete pomocou nižšie uvedeného príkazu skontrolovať informácie o systéme fsync.

$ man 2 fsync

Výstup príkazu man je pripojený nižšie. Môžete si prečítať akékoľvek informácie týkajúce sa tejto informácie, aby ste pochopili koncepciu systémového volania „fsync“ v systéme Linux. Toto okno opustíte stlačením klávesu „q“ na klávesnici.

Ďalším predpokladom nevyhnutným na použitie ID systému fsync je ID kompilátora GCC. Je to tak preto, lebo používame systémové volanie fsync v jazyku C. Na vykonanie a kompiláciu kódu jazyka C teda musíme mať v našom systéme nainštalovaný nejaký balík kompilátora. Takže tu máme kompilátor GCC. Môžete ho nainštalovať pomocou veľmi jednoduchého príkazu sudo apt, ako je uvedené nižšie. Inštaláciu dokončí za pár minút a kódy C môžete jednoducho zapisovať do súborov.

$ sudo apt nainštalovať gcc

Príklad:

Začnime pracovať na príkaze fsync, aby sme ho dobre pochopili. Najskôr musíte vytvoriť súbor typu C pomocou editora nano v prostredí príkazového riadku. Preto sa pokúste spustiť nižšie uvedený jednoduchý dotaz v prostredí shell.

$ nano nové.c

Po vytvorení a otvorení súboru je čas na napísanie kódu C. Nižší dlhý kód môžete vidieť v súbore nano. Prvých 7 riadkov obsahuje hlavičkové súbory, ktoré je potrebné zahrnúť do editorského súboru pre správne fungovanie systémového volania „fsync“. Po týchto hlavičkových súboroch sme definovali hlavnú funkciu s celočíselným návratovým typom ako „int“. Táto funkcia obsahuje dva parametre. Jeden z nich je celočíselný typ a druhý je pole typu znaku. V priestore hlavnej funkcie sme deklarovali reťazec typu znaku „* str“ a definovali sme preň hodnotu typu reťazca. Potom sme deklarovali aj dve premenné celočíselného typu, ktoré sa v ďalších riadkoch použijú ako deskriptory súborov. V nasledujúcom riadku sme pomocou funkcie create system call vytvorili nový súbor s názvom „test.txt ”a oprávnenie na čítanie a zápis ako offset parametra. Obsah tohto súboru sme vrátili deskriptoru súboru „fd“. V tomto kóde C sme definovali príkaz if. Ak je hodnota alebo ukazovateľ indexu deskriptora súboru „-1“, vyvolá chybu volanie funkcie creat () na vytvorenie nového súboru. Deskriptor „fd“ menší ako „-1“ znamená, že ukazovateľ je na pozícii -1.

Funkcia exit () sa bude volať pred zatvorením príkazu if. Ďalej sme pomocou volania metódy write zbierali hodnotu reťazca z medzipamäte a zapisovali ju do súboru „test.txt “pomocou deskriptora súboru„ fd “. Tieto údaje boli vrátené do premennej „ret“. Ak je hodnota premennej „Ret“ menšia ako -1, znamená to, že údaje neboli zapísané do súboru. Musíte teda znova zavolať funkciu zápisu a ukončiť príkaz if. Definovali sme systémové volanie fsync a dali sme mu deskriptor súboru „fd“ ako hodnotu parametra na synchronizáciu deskriptora súboru s diskovým zariadením. Po zavolaní metódy „zatvoriť“ rýchlo zapíše údaje na diskovú jednotku a zavrie deskriptor súboru. Potom sa hlavná funkcia uzavrie. Uložte tento súbor pomocou klávesovej skratky „Ctrl + S“ a zatvorte súbor „nový“.c “pomocou klávesovej skratky„ Ctrl + X “.

Po zatvorení súboru nano je teraz čas, aby ste kompilovali vyššie uvedený kód. Na kompiláciu kódu musíme použiť kompilátor gcc. Vykonajte teda nasledujúci dopyt gcc a zostavte „nový.c “súbor.

$ gcc nové.c

Teraz musíme tento kód vykonať pomocou jednoduchého a.ako je uvedené nižšie. Tento príkaz jednoducho vykoná kód a nevráti nič, ale údaje boli zapísané na diskovú jednotku v zadnej časti procesu.

$ ./ a.von

Skontrolujte súbor, ktorý bol vytvorený v kóde C, a má v sebe reťazcovú hodnotu.

$ test mačky.TXT

Záver

Krátko sme diskutovali o veľmi jednoduchom a lineárnom príklade systémového volania fsync na pochopenie jeho koncepcie.Dúfam, že teraz môžete v systéme Linux ľahko použiť systémové volanie fsync.

Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...