C Programovanie

Ako používať volanie otvoreného systému v C

Ako používať volanie otvoreného systému v C

Systémové volania sa používajú v distribúciách Linuxu, aby poskytli bránu v rámci operačného systému Linux a programov. Operačný systém Linux používa knižnicu Glibc na podporu systémových volaní v nej pri používaní jazyka C. Existuje aj oveľa viac spôsobov, ako využiť aj systémové volania. V tejto príručke k článku budeme diskutovať o otvorenom systémovom volaní v systéme Linux. Systémové volanie „Otvoriť“ sa použilo na rýchle otvorenie súboru uvedeného v ceste. Dali nám vedieť o deskriptore súboru vytvoreného používateľom. Používali sme Ubuntu 20.04, aby ste dostali nejaké praktické „otvorené“ systémové volanie.

Nainštalujte si knižnice

Jazyk C vyžaduje, aby boli nainštalované niektoré ďalšie balíčky knižníc. Najskôr je potrebné nainštalovať balík manpages-dev, aby ste skontrolovali informácie týkajúce sa systémových volaní. Otvorte terminál príkazového riadku z oblasti činnosti a vykonaním pokynov uvedených nižšie nainštalujte manpages.

$ sudo apt install manpages-dev

Výstup na dokončenie inštalácie je uvedený nižšie.

Teraz skontrolujeme otvorené systémové volanie pomocou príkazu „man“, ako je uvedené nižšie.

$ man 2 otvorené

Nasleduje výstupná manuálna stránka pre systémové volanie „Open“. Môžete si pozrieť ďalšie informácie týkajúce sa tejto informácie. Stlačením tlačidla „q“ ho opustíte.

Vyššie uvedená syntax zobrazuje prvé tri riadky potrebných knižníc, ktoré sa majú pridať pre systémové volania. Pre volanie otvoreného systému sú k dispozícii tri syntaxe. Prvá syntax zobrazuje „cestu“, čo je názov súboru, ktorý sa má otvoriť. Druhý parameter „vlajky“ zobrazuje režim súboru, napr.g., čítať alebo písať. Druhú syntax je možné použiť, ak súbor neexistuje. Režim parametrov sa používa na zobrazenie oprávnení k súboru.

Teraz je čas nainštalovať kompilátor GCC na ladenie kódu C v systéme Ubuntu 20.04 Linuxová distribúcia. Ak to chcete urobiť, vykonajte v shelli nižšie uvedenú inštrukciu.

$ sudo apt nainštalovať gcc

Vyžaduje to, aby ste pokračovali v inštalácii kompilátora GCC ťuknutím na „Y“, inak inštaláciu zatvorte kliknutím na tlačidlo „n“. Takže stlačte tlačidlo „y“ a pokračujte stlačením klávesu Enter.

Výstup dokončenia je uvedený nižšie.

Príklad 01

Pozrime sa na veľmi jednoduchý príklad systémového volania „Open“. Najskôr otvorte príkazový riadok a vytvorte nový textový súbor „test.txt “pomocou jednoduchého dotykového príkazu nasledujúcim spôsobom:

$ dotykový test.TXT

Pridajte k nej nejaké údaje manuálne. Údaje môžete zobraziť v súbore pomocou príkazu cat, ktorý je uvedený nižšie.

$ test mačky.TXT

Teraz vytvorme nový súbor C pomocou príkazu nano v prostredí shell, ako je to znázornené nižšie.

$ nano nové.c

Otvorí sa nasledujúci súbor GNU nano. Musíte doň zadať kód jazyka C uvedený nižšie. Vidíte, že sme pridali potrebné knižničné balíčky na správne vykonanie kódu C. Potom sme definovali hlavnú funkciu pre prácu na otvorenom systémovom volaní. Deklarovali sme dve celočíselné premenné. Premenná „n“ sa používa na počítanie hodnôt medzipamäte a značka „fd“ sa používa pre deskriptor súborov. Pole znakov typu vyrovnávacej pamäte sme deklarovali ako „buf“ s veľkosťou 50. Na načítanie obsahu zo súboru „test“ sa použilo otvorené systémové volanie.txt “a vráti ho do deskriptora súboru. „O_RDONLY“ sa použil na účely čítania. Nasledujúci riadok zobrazuje načítané systémové volanie na zhromaždenie 10 bajtov z medzipamäte a ich vrátenie do celého čísla n. Príkaz write sa tiež použil na zápis obsahu alebo údajov medzipamäte do deskriptora súboru, čo je výstupná obrazovka. V našom prípade práve teraz. Uložte tento súbor pomocou Ctrl + S a zatvorte ho pomocou príkazu Ctrl + X.

#include
#include
#include
#include
int main ()

int n, fd;
char buf [50];
fd = otvorený („test.txt ”, O_RDONLY);
n = čítanie (fd, buf, 10);
zapis (1, buf, 10);

Poďme si najskôr zostaviť C kód pre otvorené systémové volanie pomocou príkazu gcc nižšie.

$ gcc nové.c

Teraz je čas skontrolovať výstup kódu C pre otvorené systémové volanie. Použime nasledujúce a.príkaz v shelli. Na výstupe je zobrazených 10 bajtov z obsahu testu „súboru“.TXT".

$ ./ a.von

Zoberme si ďalší príklad na zápis obsahu jedného súboru do iného súboru pomocou systémového volania Open. Nový príkaz C vytvoríte pomocou príkazu nano, ako je uvedené nižšie.

$ nano nové.c

Vezmite teda ten istý kód s malou zmenou. V kóde sme definovali ďalší deskriptor súborov ako „fd1“. Celý kód je rovnaký, až na jeden ďalší riadok. Druhý posledný riadok kódu použil otvorené systémové volanie na vytvorenie nového súboru s názvom „target“ pomocou O_CREAT a režimu, iba na zápis ako O_WRONLY. 0642 zobrazuje oprávnenia pridelené tomuto súboru. A súbor bol vrátený do nového deskriptora súboru. Nasledujúci riadok ukázal príkaz na zápis bajtov obsahu do medzipamäte podľa jeho deskriptora súboru. Uložte súbor a zatvorte ho.

Vykonajte príkaz gcc compile na ladenie súboru v jazyku C.

$ gcc nové.c

Na zobrazenie výstupu kódu C vyskúšajte a.ako je uvedené nižšie. Neexistuje žiadny výstup, pretože výstup bol presmerovaný do novo vytvoreného súboru „target“.

$ ./ a.von

Poďme skontrolovať dáta cieľového súboru pomocou príkazu cat. Výstup ukazuje, že súbor má v sebe 20 bajtov.

$ cieľ pre mačky

Záver

Vo vyššie uvedenom návode sme vám vysvetlili použitie otvoreného systémového volania v jazyku C pomocou kompilátora gcc. Pomocou rôznych príkladov vysvetlených v tejto príručke vás prevedie vykonaním požadovaného programu.

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...
Hry Ako používať AutoKey na automatizáciu hier pre Linux
Ako používať AutoKey na automatizáciu hier pre Linux
AutoKey je obslužný program na automatizáciu stolných počítačov pre systémy Linux a X11, programovaný v programoch Python 3, GTK a Qt. Pomocou jeho fu...