C Programmēšana

Kā izmantot atvērtās sistēmas zvanu

Kā izmantot atvērtās sistēmas zvanu

Sistēmas izsaukumi tiek izmantoti Linux izplatījumos, lai nodrošinātu ieeju Linux OS un programmās. Linux operētājsistēma izmanto Glibc bibliotēku, lai tajā atbalstītu sistēmas izsaukumus, vienlaikus izmantojot C valodu. Ir arī daudz vairāk veidu, kā izmantot sistēmas zvanus. Šajā raksta ceļvedī mēs apspriedīsim atvērtās sistēmas izsaukumu Linux sistēmā. Lai ātri atvērtu ceļā norādīto failu, tika izmantots sistēmas zvans “Open”. Tas mums paziņoja par lietotāja izveidota faila faila deskriptoru. Mēs izmantojām Ubuntu 20.04, lai saņemtu praktisku “Open” sistēmas zvanu.

Instalējiet bibliotēkas

C valodai kā priekšnosacījumi ir jāinstalē dažas papildu bibliotēkas pakotnes. Pirmkārt, jums jāinstalē pakete manpages-dev, lai pārbaudītu informāciju par sistēmas zvaniem. Atveriet komandrindas termināli no darbības apgabala un izpildiet tālāk sniegto instrukciju, lai instalētu manpages.

$ sudo apt instalējiet manpages-dev

Instalācijas pabeigšanas rezultāts ir norādīts zemāk.

Tagad mēs pārbaudīsim atvērtās sistēmas zvanu, izmantojot komandu “man”, kā norādīts zemāk.

$ man 2 atvērts

Tālāk ir parādīta “Open” sistēmas izsaukuma izvades rokasgrāmata. Jūs varat redzēt papildu informāciju par to. Nospiediet pogu q, lai izietu no tā.

Iepriekš minētā sintakse parāda pirmās trīs nepieciešamo bibliotēku rindas, kas jāpievieno sistēmas zvaniem. Atvērtās sistēmas zvanam ir pieejamas trīs sintakse. Pirmajā sintaksē tiek parādīts “pathname”, kas ir atveramā faila nosaukums. Otrais parametrs “karodziņi” parāda faila režīmu, piemēram,.g., lasīt vai rakstīt. Otro sintaksi var izmantot, ja fails neeksistē. Parametru režīms tiek izmantots, lai parādītu privilēģijas failā.

Tagad ir pienācis laiks instalēt GCC kompilatoru C koda atkļūdošanai Ubuntu 20.04 Linux izplatīšana. Lai to izdarītu, izpildiet zemāk redzamo instrukciju čaulā.

$ sudo apt instalējiet gcc

Lai turpinātu instalēt GCC kompilatoru, jums jāpieskaras “Y”, pretējā gadījumā nospiediet pogu “n”, lai aizvērtu instalāciju. Tāpēc nospiediet pogu “y” un nospiediet taustiņu Enter, lai turpinātu.

Izlaide pabeigšanai ir parādīta zemāk.

01. piemērs

Apskatīsim ļoti vienkāršo “Open” sistēmas zvana piemēru. Pirmkārt, no visiem atveriet komandu apvalku un izveidojiet jaunu teksta faila testu.txt ”, izmantojot vienkāršo pieskāriena komandu šādi:

$ pieskāriena tests.txt

Pievienojiet dažus datus tam manuāli. Datus failā var redzēt, izmantojot zemāk esošo kaķu komandu.

$ kaķu tests.txt

Tagad izveidosim jaunu C failu, izmantojot apvalkā esošo nano komandu, kā parādīts zemāk.

$ nano jauns.c

Tiks atvērts zemāk redzamais GNU nano fails. Tajā jāievada zemāk esošais C valodas kods. Var redzēt, ka esam pievienojuši nepieciešamās bibliotēkas paketes, lai C kods tiktu izpildīts pareizi. Pēc tam mēs esam definējuši galveno funkciju darbam ar Open system zvanu. Mēs esam deklarējuši divus veselu skaitļu mainīgos. Mainīgo “n” izmanto bufera vērtību skaitīšanai, bet “fd” - faila aprakstam. Rakstzīmju tipa bufera masīvs ir deklarēts kā “buf”, kura lielums ir 50. Atvērtās sistēmas izsaukums ir izmantots, lai nolasītu saturu no faila “test.txt ”un atgrieziet to faila aprakstā. “O_RDONLY” ir izmantots lasīšanas nolūkos. Nākamajā rindā parādīts nolasītās sistēmas izsaukums, lai savāktu 10 baitus no bufera un atgrieztu to veselajā skaitlī n. Arī rakstīšanas komanda ir izmantota, lai satura vai bufera datus ierakstītu faila aprakstā, kas ir izvades ekrāns. Mūsu gadījumā šobrīd. Saglabājiet šo failu, izmantojot Ctrl + S, un aizveriet to, izmantojot komandu Ctrl + X.

# iekļaut
# iekļaut
# iekļaut
# iekļaut
int main ()

int n, fd;
char buf [50];
fd = atvērts (“tests.txt ”, O_RDONLY);
n = lasīt (fd, buf, 10);
rakstīt (1, buf, 10);

Vispirms apkoposim atvērtās sistēmas zvana C kodu, izmantojot zemāk esošo komandu gcc.

$ gcc jauns.c

Tagad ir pienācis laiks pārbaudīt atvērtās sistēmas zvana C koda izvadi. Izmantosim a.out komandu čaulā. Rezultātā tiek parādīti 10 baiti no faila testa satura.txt ”.

$ ./ a.ārā

Ņemsim vēl vienu piemēru, lai viena faila saturu ierakstītu citā failā, izmantojot Open system zvanu. Lai izveidotu jaunu C failu, izmantojot komandu nano, kā norādīts zemāk.

$ nano jauns.c

Tāpēc ņemiet to pašu kodu ar nelielām izmaiņām tajā. Kodā esam definējuši citu faila deskriptoru kā “fd1”. Viss kods ir vienāds, izņemot vienu papildu rindu. Otrajā pēdējā koda rindiņā ir izmantots atvērtās sistēmas izsaukums, lai izveidotu jaunu failu ar nosaukumu “target”, izmantojot O_CREAT un režīmu, tikai rakstot kā O_WRONLY. 0642 parāda šim failam piešķirtās privilēģijas. Un fails ir atgriezts jaunā faila aprakstā. Nākamajā rindā ir parādīta komanda rakstīt satura baitus buferī atbilstoši tā faila aprakstam. Saglabājiet failu un aizveriet to.

Izpildiet komandu gcc compile, lai atkļūdotu C valodas failu.

$ gcc jauns.c

Lai parādītu C koda izvadi, izmēģiniet a.out instrukcijas čaulā, kā norādīts zemāk. Nav izvades, jo izeja ir novirzīta uz jaunizveidoto failu “target”.

$ ./ a.ārā

Pārbaudīsim faila mērķa datus, izmantojot komandu cat. Izeja parāda, ka failā ir 20 baiti.

$ kaķu mērķis

Secinājums

Iepriekš minētajā apmācībā mēs jums paskaidrojām, ka izmantojiet atvērtas sistēmas izsaukumu C valodā, izmantojot kompilatoru gcc. Ar dažādu šajā rokasgrāmatā izskaidroto piemēru palīdzību jūs varēsiet īstenot vēlamo programmu.

Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...