C programavimas

Kaip naudoti atvirosios sistemos skambutį C

Kaip naudoti atvirosios sistemos skambutį C

Sistemos skambučiai naudojami „Linux“ paskirstymuose, kad būtų suteikta prieiga prie „Linux“ OS ir programų. „Linux“ operacinė sistema naudoja „Glibc“ biblioteką, kad palaikytų sistemos skambučius joje naudojant C kalbą. Taip pat yra daug daugiau būdų, kaip naudoti sistemos skambučius. Šiame straipsnio vadove aptarsime atvirosios sistemos kvietimą „Linux“ sistemoje. „Atidaryti“ sistemos iškvietimas buvo naudojamas norint greitai atidaryti kelyje nurodytą failą. Tai praneš mums apie vartotojo sukurto failo failo aprašą. Mes naudojome „Ubuntu 20“.04, kad gautumėte praktinį „Open“ sistemos skambutį.

Įdiekite bibliotekas

C kalbai reikia, kad būtinos kelios papildomos bibliotekos pakuotės. Visų pirma, norėdami patikrinti informaciją apie sistemos skambučius, turite įdiegti paketą „manpages-dev“. Atidarykite komandinės eilutės terminalą iš veiklos srities ir vykdykite toliau pateiktą instrukciją, kad įdiegtumėte puslapius.

$ sudo apt įdiekite manpages-dev

Rezultatas, skirtas užbaigti diegimą, pateiktas žemiau.

Dabar patikrinsime, ar nėra atviros sistemos skambučio, naudodamiesi „man“ komanda, kaip nurodyta toliau.

$ 2 žmogus atidarytas

Žemiau parodytas „Open“ sistemos skambučio išvesties vadovas. Galite pamatyti papildomą informaciją apie tai. Paspauskite mygtuką „q“, kad išeitumėte iš jo.

Pirmiau pateiktoje sintaksėje rodomos pirmosios trys būtinų bibliotekų eilutės, kurios turi būti pridėtos prie sistemos skambučių. Yra trys atviros sistemos skambučio sintaksės. Pirmoji sintaksė rodo „kelio pavadinimą“, kuris yra atidaromo failo pavadinimas. Antrasis parametras „vėliavos“ rodo failo režimą, t.g., skaityti ar rašyti. Antrąją sintaksę galima naudoti, kai failo nėra. Parametrų režimas naudojamas failo privilegijoms parodyti.

Dabar atėjo laikas įdiegti GCC kompiliatorių, skirtą C kodui derinti „Ubuntu 20“.04 „Linux“ platinimas. Norėdami tai padaryti, vykdykite žemiau pateiktą apvalkalo instrukciją.

$ sudo apt install gcc

Norint tęsti GCC kompiliatoriaus diegimą, reikia paliesti „Y“, kitaip paspauskite „n“ mygtuką, kad uždarytumėte diegimą. Taigi paspauskite „y“ mygtuką ir paspauskite Enter, kad tęstumėte.

Baigimo rezultatas parodytas žemiau.

01 pavyzdys

Pažvelkime į labai paprastą „Open“ sistemos skambučio pavyzdį. Pirmiausia atidarykite komandos apvalkalą ir sukurkite naują teksto failo „testą“.txt “naudodami paprastą prisilietimo komandą taip:

$ lietimo testas.txt

Kai kuriuos duomenis prie jo pridėkite rankiniu būdu. Duomenis faile galite pamatyti naudodami žemiau pateiktą komandą katė.

$ katės testas.txt

Dabar sukurkime naują C failą naudodami komandą „nano“ apvalkale, kaip parodyta žemiau.

$ nano naujas.c

Žemiau pateiktas GNU nano failas bus atidarytas. Jame turite įvesti žemiau pateiktą C kalbos kodą. Galite pamatyti, kad mes pridėjome reikiamus bibliotekos paketus, kad C kodas būtų tinkamai vykdomas. Po to mes apibrėžėme pagrindinę funkciją dirbant su „Open system“ skambučiu. Mes paskelbėme du sveikojo skaičiaus kintamuosius. Kintamasis „n“ naudojamas buferio reikšmėms skaičiuoti, o „fd“ - failo deskriptoriui. Mes paskelbėme simbolių tipo buferio masyvą kaip „buf“, kurio dydis 50. Atviros sistemos iškvietimas buvo naudojamas skaityti turinį iš failo „testas“.txt “ir grąžinkite jį failo deskriptoriui. „O_RDONLY“ buvo naudojamas skaitymo tikslams. Kitoje eilutėje rodomas perskaitytas sistemos iškvietimas surinkti 10 baitų iš buferio ir grąžinti jį į sveiką skaičių n. Be to, rašymo komanda buvo naudojama turinio ar buferio duomenims įrašyti į failo deskriptorių, kuris yra išvesties ekranas. Mūsų atveju šiuo metu. Išsaugokite šį failą naudodami „Ctrl + S“ ir uždarykite naudodami „Ctrl + X“ komandą.

# įtraukti
# įtraukti
# įtraukti
# įtraukti
int main ()

int n, fd;
char buf [50];
fd = atidaryti („testas.txt “, O_RDONLY);
n = skaityti (fd, buf, 10);
rašyti (1, buf, 10);

Pirmiausia sukompiliuokime atviros sistemos skambučio C kodą naudodami žemiau esančią komandą gcc.

$ gcc naujas.c

Dabar atėjo laikas patikrinti atvirojo sistemos skambučio C kodo išvestį. Panaudokime toliau pateiktą a.out komandą kiaute. Išvestyje rodomi 10 baitų iš failo „testo“ turinio.txt “.

$ ./ a.išėjo

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

$ nano naujas.c

Taigi paimkite tą patį kodą su nedideliais pakeitimais. Kode nustatėme kitą failo aprašą kaip „fd1“. Visas kodas yra tas pats, išskyrus vieną papildomą eilutę. Antroje paskutinėje kodo eilutėje buvo naudojamas atvirosios sistemos iškvietimas kuriant naują failą pavadinimu „target“ naudojant O_CREAT ir režimą, tik rašant kaip O_WRONLY. 0642 rodo šiam failui priskirtas teises. Ir failas grąžintas naujam failo deskriptoriui. Kitoje eilutėje rodoma komanda įrašyti turinio baitus į buferį pagal failo aprašą. Išsaugokite failą ir uždarykite jį.

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

$ gcc naujas.c

Norėdami parodyti C kodo išvestį, pabandykite a.iš instrukcijos į apvalkalą, kaip nurodyta toliau. Išvesties nėra, nes išvestis buvo nukreipta į naujai sukurtą failą „target“.

$ ./ a.išėjo

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

$ katės taikinys

Išvada

Ankstesnėje pamokoje mes jums paaiškinome, kaip naudoti atviros sistemos skambutį C kalba, naudodami kompiliatorių gcc. Naudodamiesi įvairiais pavyzdžiais, paaiškintais šiame vadove, galėsite įgyvendinti norimą programą.

Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...