C Programovanie

Ako sa používa systémový hovor systému Write In C

Ako sa používa systémový hovor systému Write In C

Systémové volanie slúži ako primárna brána medzi programami a jadrom operačného systému Linux. Aj keď by ste takmer určite potrebovali mať systémové volanie počas celej svojej programátorskej kariéry v C, či už sa zameriavate na výnimočnú produktivitu alebo určitý štýl funkcií, úložisko Glibc alebo iné štandardné knižnice nájdené v populárnych distribúciách systému Linux budú stačiť pre veľkú väčšinu vašich požiadavky. V tejto príručke vytvoríme koncepciu volania systému Write v jazyku C.

Syntax:

#include
ssize_t write (int fd, const void * buf, size_t count);

V tejto syntaxi vyššie ukazuje prvý riadok knižnicu pre systémové volania. Na druhom riadku znamená fd deskriptor súboru, čo je skutočne číslo, ktoré určuje otvorený súbor procesu. Kľúčové slovo * buf je skratka pre buffer. Obsahuje akékoľvek údaje. Ďalej je počet. Je to počet bajtov, ktoré sa majú zapísať do deskriptora súboru z medzipamäte.

Podmienky inštalácie:

Ak chcete spustiť akýkoľvek kód v jazyku C, musíte si najskôr nainštalovať niektoré balíky v distribúcii Linuxu. Ak chcete vidieť ďalšie informácie týkajúce sa systémového volania zápisu, musíte si nainštalovať balíček manpages-dev. Terminál otvoríte pomocou klávesovej skratky Ctrl + Alt + T. Po otvorení napíšte nasledujúci príkaz apt install a za ním kľúčové slovo manpages-dev na inštaláciu manpages.

$ sudo apt install manpages-dev

Inštalácia manuálových stránok bude chvíľu trvať. Počkajte, kým sa dokončí.

Po inštalácii môžete vidieť ďalšie informácie o systémovom volaní „write“ pomocou príkazu man v shelli.

$ man 2 napis

Nasleduje výstupná manuálna stránka pre príkaz „write“. Môžete si prečítať informácie o ňom. Stlačením q manuál opustíte.

Teraz je čas nainštalovať si balík „Gcc“ do systému Linux, aby ste mohli pracovať v jazyku C. Za týmto účelom otvorte shell a napíšte nasledujúci príkaz apt install nasledovaný kľúčovým slovom „gcc“.

$ sudo apt nainštalovať gcc

Medzitým vás môže počas inštalácie požiadať o potvrdenie tejto akcie inštalácie stlačením „y“, aby ste pokračovali, a „n“, aby ste ju zastavili. Takže klepnite na klávesu „y“ a stlačte kláves Enter.

Nainštaluje sa do vášho systému do niekoľkých minút a posledné riadky výstupu budú zobrazené na nasledujúcej snímke.

Príklady:

Poďme si uviesť niekoľko príkladov systémového volania „write“ v našej distribúcii Linuxu. Preto otvorte shell príkazového riadku a vytvorte v ňom nový súbor C s príponou „c“. Nižšie uvedený príkaz nano musíte použiť na rýchle vytvorenie a otvorenie. Dali sme mu názov ako „nový“.c ”.

$ nano nové.c

Otvorí sa okno dole. Teraz musíte do tohto súboru napísať pripojený kód. V tomto kóde sme zahrnuli unistd.h najskôr knižnica. Potom sme vytvorili hlavnú funkciu a v rámci tejto funkcie sme vytvorili „zápisové“ systémové volanie. V tomto systémovom volaní je úplne prvým parametrom deskriptor súboru. V tomto prípade celé číslo 1 predstavuje obrazovku výstupného zariadenia a je pevné. Náš výstup sa teda zobrazí na obrazovke. Druhý parameter zobrazuje údaje vyrovnávacej pamäte. Môžete doň pridať čokoľvek. A posledný parameter zobrazuje početné číslo pre údaje uvedené v parametri medzipamäte. Ako sme už spomenuli 5 ako počet, bude zobrazovať iba prvých 5 bajtov dát medzipamäte a ignorovať zostávajúce bajty. Uložte tento kód pomocou klávesovej skratky Ctrl + S a ukončite tento súbor pomocou príkazu Ctrl + X.

#include
Int main ()
Write (1, „Aqsa Yasin“, 5);

Teraz v termináli vyskúšajte príkaz gcc uvedený nižšie, aby ste zostavili tento novovytvorený kód s názvom súboru.

$ gcc nové.c

Pozrime sa na tento kód pomocou predvoleného a.out súbor vytvorený za behu. Skúste teda nižšie uvedené a.príkaz na kontrolu výstupu systémového volania „write“. Musíme to použiť s „./ ”, Aby ste vybrali súbor z aktuálneho adresára.

$ ./ a.von

Na výstupe, ktorý vidíte, sa zobrazilo iba slovo „Aqsa“ kvôli počtu 5.

Poďme trochu zmeniť náš kód. Zmenili sme počet na 11, pretože v našich údajoch medzipamäte „Aqsa Yasin“ máme celkom 11 bajtov. Tentokrát teda výstup zobrazí celé bajty reťazcových údajov „Aqsa Yasin“. Uložte tento súbor pomocou Ctrl + S a ukončite ho pomocou klávesovej skratky Ctrl + X.

Zostavme aktualizovaný kód pomocou novo nainštalovaného kompilátora gcc pre distribúciu Linuxu. Vyskúšajte rovnaký príkaz gcc spolu s názvom súboru ako „nový.c ”.

$ gcc nové.c

Teraz zobrazte výstup rovnakého kódu pomocou predchádzajúceho „a.ako je uvedené nižšie. Výstup zobrazuje celý reťazec „Aqsa Yasin“ medzipamäte.

$ ./ a.von

Pozrime sa, ako funguje kód, keď zoberieme početné číslo väčšie ako je celkový počet bajtov, ktoré obsahujú údaje vyrovnávacej pamäte. Počítali sme teda ako 30. Uložte a zatvorte súbor.

Zostavte ten istý aktualizovaný súbor pomocou príkazu gcc, ako je uvedené nižšie.

$ gcc nové.c

Teraz vykonajte súbor pomocou a.out a výstup zobrazí dáta medzipamäte, ako aj niektoré hodnoty odpadu, ako sú zobrazené na výstupe snímky nižšie.$ ./ a.von

Celkový počet bajtov zapísaných do súboru môžete skontrolovať aj pomocou nižšie uvedeného kódu v rovnakom súbore.

Zostavte kód podľa pokynu gcc.

$ gcc nové.c

Výstup zobrazuje celkový počet bajtov vrátane údajov vyrovnávacej pamäte a prerušenia riadku pomocou a.príkaz von.

$ ./ a.von

Záver:

V tomto tutoriáli sme vypracovali koncept použitia systémového volania „Write“ v jazyku C. Vyskúšajte všetky príklady, aby ste pochopili myšlienku systémového volania „write“ pomocou tohto článku.

Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...