Kaip naudotis atviros sistemos skambučiu C

How Use Open System Call C



Sistemos iškvietimai naudojami „Linux“ paskirstymuose, kad būtų užtikrintos durys „Linux“ OS ir programose. „Linux“ operacinė sistema naudoja „Glibc“ biblioteką, kad palaikytų sistemos skambučius, naudojant C kalbą. Taip pat yra daug daugiau būdų, kaip naudoti sistemos skambučius. Šiame straipsnio vadove aptarsime atviros sistemos skambutį „Linux“ sistemoje. „Open system“ skambutis buvo naudojamas greitai atidaryti kelyje nurodytą failą. Tai pranešė mums apie vartotojo sukurto failo failo aprašą. Mes naudojome „Ubuntu 20.04“, kad gautume praktinį „Open System“ skambutį.

Įdiekite bibliotekas

Norint naudoti C kalbą, būtina įdiegti keletą papildomų bibliotekos paketų. Pirmiausia turite įdiegti paketą manpages-dev, kad patikrintumėte informaciją apie sistemos skambučius. Atidarykite komandų eilutės terminalą iš veiklos srities ir vykdykite toliau pateiktą instrukciją, kad įdiegtumėte puslapius.







$ sudo apt įdiegti manpages-dev



Toliau pateikiama diegimo užbaigimo išeiga.







Dabar mes patikrinsime atviros sistemos skambutį naudodami komandą „man“, kaip nurodyta toliau.

$ vyras2atviras



Žemiau pateiktas „Open system“ skambučio išvesties vadovas. Galite pamatyti papildomos informacijos apie tai. Norėdami išeiti, paspauskite mygtuką q.

Aukščiau pateikta sintaksė rodo pirmąsias tris būtinų bibliotekų eilutes, kurios turi būti pridėtos sistemos skambučiams. Yra trys sintaksės, skirtos atviros sistemos skambučiui. Pirmoji sintaksė rodo kelio pavadinimą, kuris yra atidaromo failo pavadinimas. Antrasis parametras, vėliavos, rodo failo režimą, pvz., Skaityti ar rašyti. Antroji sintaksė gali būti naudojama, kai failo nėra. Parametrų režimas naudojamas failo privilegijoms parodyti.

Dabar atėjo laikas įdiegti GCC kompiliatorių, skirtą C kodo derinimui „Ubuntu 20.04 Linux“ platinime. Norėdami tai padaryti, vykdykite toliau pateiktą apvalkalo instrukciją.

$ sudo apt install gcc

Norėdami tęsti GCC kompiliatoriaus diegimą, turite paliesti Y, priešingu atveju paspauskite mygtuką n, kad uždarytumėte diegimą. Taigi paspauskite y mygtuką ir paspauskite „Enter“, kad tęstumėte.

Užbaigimo rezultatas rodomas žemiau.

01 pavyzdys

Pažvelkime į labai paprastą atviros sistemos skambučio pavyzdį. Pirmiausia atidarykite komandų apvalkalą ir sukurkite naują teksto failą test.txt naudodami paprastą palietimo komandą, kaip nurodyta toliau.

$paliestitest.txt

Rankiniu būdu pridėkite prie jo tam tikrus duomenis. Failo duomenis galite pamatyti naudodami žemiau pateiktą komandą cat.

$katėtest.txt

Dabar sukurkime naują C failą naudodami apvalkalo nano komandą, kaip parodyta žemiau.

$nanonaujas.c

Bus atidarytas žemiau pateiktas GNU nano failas. Turite įvesti žemiau esantį C kalbos kodą. Matote, kad pridėjome reikiamus bibliotekos paketus, kad C kodas būtų tinkamai įvykdytas. Po to mes apibrėžėme pagrindinę funkciją, skirtą dirbti su atviros sistemos skambučiu. Mes paskelbėme du sveikuosius kintamuosius. Kintamasis n naudojamas buferio reikšmėms skaičiuoti, o fd - failo aprašui. Mes paskelbėme simbolių tipo buferio masyvą kaip buf, kurio dydis yra 50. Atviras sistemos iškvietimas buvo naudojamas perskaityti turinį iš failo test.txt ir grąžinti jį į failo aprašą. „O_RDONLY“ buvo naudojamas skaitymui. Kitoje eilutėje rodomas skaitymo sistemos skambutis surinkti 10 baitų iš buferio ir grąžinti jį į sveikąjį skaičių n. Be to, rašymo komanda buvo naudojama turinio ar buferio duomenims įrašyti į failo aprašą, kuris yra išvesties ekranas Mūsų atveju šiuo metu. Išsaugokite šį failą naudodami „Ctrl“+S ir uždarykite naudodami komandą „Ctrl+X“.

#įtraukti
#įtraukti
#įtraukti
#įtraukti

tarptpagrindinis()
{
tarptn,fd;
anglisbuf[penkiasdešimt];
fd=atviras(testas.txt,O_RDONLY);
n=skaityti(fd,buf, 10);
rašyti(1 ,buf, 10);

Pirmiausia surinksime atviros sistemos skambučio C kodą naudodami toliau pateiktą komandą gcc.

$gccnaujas.c

Dabar atėjo laikas patikrinti atviro sistemos skambučio C kodo išvestį. Naudokime žemiau esančią komandą a.out apvalkale. Išvestyje rodomi 10 baitų iš failo test.txt turinio.

$./į.išeiti

Paimkime kitą pavyzdį, kaip vieno failo turinį įrašyti į kitą failą naudojant „Open System“ skambutį. Norėdami sukurti naują C failą naudodami komandą nano, kaip nurodyta toliau.

$ nano naujas.c

Taigi paimkite tą patį kodą su nedideliu jo pakeitimu. Mes nustatėme kitą failo deskriptorių kode kaip fd1. Visas kodas yra tas pats, išskyrus vieną papildomą eilutę. Antroji paskutinė kodo eilutė panaudojo atviros sistemos skambutį, kad sukurtų naują failą pavadinimu target naudojant O_CREAT ir režimą, tik rašomą kaip O_WRONLY. 0642 rodo šiam failui priskirtas privilegijas. Ir failas buvo grąžintas į naują failų aprašą. Kitoje eilutėje rodoma komanda įrašyti turinio baitus į buferį pagal failo aprašą. Išsaugokite failą ir uždarykite.

Vykdykite komandą gcc compile, kad derintumėte C kalbos failą.

$ gcc naujas.c

Norėdami parodyti C kodo išvestį, išbandykite a.out instrukciją apvalkale, kaip parodyta žemiau. Išvesties nėra, nes išvestis buvo nukreipta į naujai sukurtą failo tikslą.

$./į.išeiti

Patikrinkime failo taikinio duomenis naudodami komandą cat. Išvestis rodo, kad faile yra 20 baitų.

$ katės taikinys

Išvada

Aukščiau esančioje pamokoje mes jums paaiškinome, kaip naudoti atviros sistemos skambutį C kalba naudojant gcc kompiliatorių. Naudodami įvairius šiame vadove paaiškintus pavyzdžius, galėsite įgyvendinti norimą programą.