Kaip naudotis rašymo sistemos skambučiu C

How Use Write System Call C



Sistemos iškvietimas yra pagrindinis vartai tarp programų ir „Linux“ operacinės sistemos branduolio. Nors per visą savo C programavimo karjerą jums būtinai reikės skambinti sistemai, nesvarbu, ar siekiate išskirtinio našumo, ar tam tikro stiliaus funkcijų, daugumai jūsų užteks „Glibc“ saugyklos ar kitų standartinių bibliotekų, esančių populiariuose „Linux“ distribucijose. reikalavimus. Šiame vadove mes nustatysime „Write System“ skambučio C kalba koncepciją.

Sintaksė:

#įtraukti

ssize_trašyti(int fd, const void*buf, size_t count);

Šioje sintaksėje pirmoje eilutėje rodoma sistemos skambučių biblioteka. Antroje eilutėje fd reiškia failo aprašą, kuris iš tikrųjų yra skaičius, nurodantis atvirą proceso failą. Raktinis žodis *buf reiškia buferį. Jame yra bet kokie duomenys. Kitas yra skaičiavimas. Tai yra baitų, įrašomų į buferio failo aprašą, skaičius.







Įdiegimo sąlygos:

Norėdami paleisti bet kurį C kalbos kodą, pirmiausia turite įdiegti kai kuriuos „Linux“ platinimo paketus. Jei norite pamatyti daugiau informacijos apie rašymo sistemos iškvietimą, turite įdiegti manpages-dev paketą. Norėdami atidaryti terminalą naudodami sparčiuosius klavišus „Ctrl“+„Alt“+T. Atidarę jį, parašykite žemiau esančią komandą apt install ir manpages-dev raktinį žodį, kad įdiegtumėte manpages.



$sudotinkamasdiegtimanpages-dev



Meniu diegimas užtruks šiek tiek laiko. Palaukite, kol jis bus baigtas.





Įdiegę papildomą informaciją apie rašymo sistemos skambutį galite pamatyti per apvalkalo komandą žemiau.



$vyras 2 rašyti

Rašymo komandos išvesties vadovas pateikiamas žemiau. Galite perskaityti informaciją apie tai. Norėdami išeiti iš vadovo, paspauskite q.

Dabar atėjo laikas įdiegti „Gcc“ paketą „Linux“ sistemoje, kad jis veiktų C kalba. Norėdami tai padaryti, atidarykite apvalkalą ir parašykite žemiau esančią komandą apt install ir raktinį žodį gcc.

$sudotinkamasdiegti gcc

Tuo tarpu diegimo metu jis gali paprašyti patvirtinti šį diegimo veiksmą paspausdami y, jei norite tęsti, ir n, kad jį sustabdytumėte. Taigi, bakstelėkite y klavišą ir paspauskite klavišą Enter.

Jis bus įdiegtas jūsų sistemoje per kelias minutes, o paskutinės išvesties eilutės bus tokios, kaip parodyta žemiau esančioje momentinėje nuotraukoje.

Pavyzdžiai:

Turime keletą rašymo sistemos iškvietimo pavyzdžių mūsų „Linux“ platinime. Todėl atidarykite komandinės eilutės apvalkalą ir sukurkite jame naują C failą su taško c plėtiniu. Norėdami greitai sukurti ir atidaryti, turite naudoti žemiau esančią komandą nano. Mes jam davėme naują pavadinimą.

$nanonaujas.c

Žemiau esantis langas bus atidarytas. Dabar į šį failą turite įrašyti pritvirtintą kodą. Į šį kodą pirmiausia įtraukėme unistd.h biblioteką. Tada mes sukūrėme pagrindinę funkciją ir šioje funkcijoje sukūrėme rašymo sistemos skambutį. Šiame sistemos iškvietime pirmasis parametras yra failo aprašas. Šiuo atveju sveikasis skaičius 1 reiškia išvesties įrenginio ekraną ir yra fiksuotas. Taigi mūsų produkcija bus rodoma ekrane. Antrasis parametras rodo buferio duomenis. Prie jo galite pridėti bet ką. Ir paskutinis parametras rodo buferio parametre nurodytų duomenų skaičių. Kaip minėjome 5 kaip skaičiaus skaičių, jis parodys tik pirmuosius 5 buferio duomenų baitus ir ignoruos likusius baitus. Išsaugokite šį kodą naudodami spartųjį klavišą Ctrl+S ir išeikite iš šio failo naudodami komandą Ctrl+X.

#įtraukti

Int pagrindinis()

{Rašyk(1Aqsa Yasin5);}

Dabar terminale pabandykite žemiau pateiktą komandą gcc, kad surinktumėte šį naujai sukurtą kodą failo pavadinimu.

$gccnaujas.c

Patikrinkime šį kodą naudodami numatytąjį failą a.out, sukurtą vykdymo metu. Taigi, išbandykite žemiau pateiktą komandą a.out, kad patikrintumėte įrašymo sistemos skambučio išvestį. Turime jį naudoti su ./, kad pasirinktume failą iš dabartinio katalogo.

$./a. ne

Išvestyje, kurią matote, buvo rodomas tik žodis Aqsa dėl skaičiaus 5.

Truputį pakeiskime savo kodą. Pakeitėme skaičiaus skaičių į 11, nes buferiniuose duomenyse „Aqsa Yasin“ iš viso turime 11 baitų. Taigi šį kartą išvestyje bus rodomi visi eilutės duomenų baitai Aqsa Yasin. Išsaugokite šį failą naudodami Ctrl+S ir uždarykite naudodami Ctrl+X spartųjį klavišą.

Surinkime atnaujintą kodą naudodami naujai įdiegtą „gcc“ kompiliatorių, skirtą „Linux“ platinimui. Išbandykite tą pačią komandą gcc kartu su failo pavadinimu kaip new.c.

$gccnaujas.c

Dabar parodykite to paties kodo išvestį naudodami ankstesnę komandą a.out, kaip nurodyta toliau. Išvestyje rodoma visa buferio eilutė Aqsa Yasin.

$./a. ne

Pažiūrėkime, kaip veikia kodas, kai skaičiavimo skaičius yra didesnis už bendrą baitų skaičių buferio duomenyse. Taigi, mes naudojome skaičių kaip 30. Išsaugokite ir uždarykite failą.

Sudarykite tą patį atnaujintą failą naudodami komandą gcc, kaip nurodyta toliau.

$gccnaujas.c

Dabar vykdykite failą naudodami komandą a.out, o išvestyje bus rodomi buferio duomenys, taip pat šiukšlių vertė, kaip parodyta žemiau esančioje momentinėje kopijoje. $ ./A.out

Taip pat galite patikrinti bendrą į failą įrašytų baitų skaičių naudodami toliau pateiktą to paties failo kodą.

Sudarykite kodą pagal gcc instrukciją.

$gccnaujas.c

Išvestis rodo bendrą baitų skaičių, įskaitant buferio duomenis ir eilutės pertrauką, naudojant komandą a.out.

$./a. ne

Išvada:

Šioje pamokoje mes sukūrėme koncepciją, kaip naudoti rašymo sistemos skambutį C. Išbandykite visus pavyzdžius, kad suprastumėte rašymo sistemos iškvietimo idėją naudodami šį straipsnį.