C Programmēšana

Kā izmantot rakstīšanas sistēmas izsaukumu C

Kā izmantot rakstīšanas sistēmas izsaukumu C

Sistēmas izsaukums kalpo kā galvenais vārteja starp programmām un Linux operētājsistēmas kodolu. Lai gan jums gandrīz noteikti būs nepieciešams sistēmas izsaukums visā jūsu C programmēšanas karjeras laikā, neatkarīgi no tā, vai jūs tiecaties uz izcilu produktivitāti vai noteiktu stila iezīmēm, lielākajai daļai jūsu prasības. Šajā rokasgrāmatā mēs izveidosim koncepciju par rakstīšanas sistēmas izsaukumu C valodā.

Sintakse:

# iekļaut
ssize_t write (int fd, const void * buf, size_t count);

Šajā iepriekš minētajā sintaksē pirmajā rindā parādīta bibliotēkas sistēma zvaniem. Otrajā rindā fd apzīmē faila deskriptoru, kas patiešām ir skaitlis, kas norāda procesa atvērto failu. Atslēgvārds * buf nozīmē buferi. Tajā ir visi tajā esošie dati. Nākamais ir skaits. Tas ir baitu skaits, kas jāieraksta faila aprakstā no bufera.

Instalēšanas priekšnosacījumi:

Lai palaistu jebkuru C valodas kodu, vispirms Linux instalācijā ir jāinstalē daži pakotnes. Ja vēlaties redzēt sīkāku informāciju par rakstīšanas sistēmas izsaukumu, jums to jāinstalē pakete manpages-dev. Lai atvērtu termināli, izmantojot īsinājumtaustiņu Ctrl + Alt + T. Pēc tā atvēršanas uzrakstiet zemāk esošo komandu apt install, kam seko atslēgvārds manpages-dev, lai instalētu manpages.

$ sudo apt instalējiet manpages-dev

Manu lapu instalēšana prasīs zināmu laiku. Pagaidiet, līdz tas tiks pabeigts.

Pēc instalēšanas jūs varat redzēt papildu informāciju par sistēmas rakstīšanas izsaukumu, izmantojot zemāk esošo komandu čaulā.

$ man 2 raksti

Komandas “write” izvades man lapa ir dota zemāk. Jūs varat izlasīt informāciju par to. Nospiediet q, lai izietu no rokasgrāmatas.

Tagad ir pienācis laiks instalēt paketi “Gcc” savā Linux sistēmā, lai tā darbotos C valodā. Lai to izdarītu, atveriet čaulu un ierakstiet zemāk esošo komandu apt install, kam seko atslēgvārds “gcc”.

$ sudo apt instalējiet gcc

Tikmēr instalēšanas laikā tā var lūgt apstiprināt šo instalēšanas darbību, nospiežot “y”, lai turpinātu, un “n”, lai to apturētu. Tātad, pieskarieties taustiņam “y” un nospiediet taustiņu Enter.

Tas tiks instalēts jūsu sistēmā dažu minūšu laikā, un pēdējās izvades rindas būs tādas, kā parādīts zemāk esošajā momentuzņēmumā.

Piemēri:

Pieņemsim dažus Linux rakstīšanas sistēmas izsaukuma piemērus. Tāpēc atveriet komandrindas apvalku un izveidojiet tajā jaunu C failu ar punkta “c” paplašinājumu. Lai to ātri izveidotu un atvērtu, jums jāizmanto zemāk esošā nano komanda. Mēs tam esam devuši nosaukumu “jauns.c ”.

$ nano jauns.c

Tiks atvērts zemāk redzamais logs. Tagad jums šajā failā ir jāieraksta piestiprinātais kods. Šajā kodā mēs esam iekļāvuši unistd.h bibliotēka vispirms. Tad mēs esam izveidojuši galveno funkciju un šīs funkcijas ietvaros esam izveidojuši “rakstīšanas” sistēmas izsaukumu. Šajā sistēmas izsaukumā pats pirmais parametrs ir faila deskriptors. Šajā gadījumā vesels skaitlis 1 apzīmē izvades ierīces ekrānu, un tas ir fiksēts. Tātad mūsu produkcija tiks parādīta ekrānā. Otrais parametrs parāda bufera datus. Varat tam pievienot jebko. Un pēdējais parametrs parāda bufera parametrā norādīto datu skaitīšanas numuru. Tā kā mēs esam minējuši 5 kā skaitīšanas skaitli, tas parādīs tikai pirmos 5 bufera datu baitus un ignorēs atlikušos baitus. Saglabājiet šo kodu, izmantojot īsinājumtaustiņu Ctrl + S, un izejiet no šī faila, izmantojot komandu Ctrl + X.

# iekļaut
Int main ()
Rakstīt (1, “Aqsa Yasin”, 5);

Tagad terminālā izmēģiniet zemāk esošo komandu gcc, lai apkopotu šo jaunizveidoto kodu ar faila nosaukumu.

$ gcc jauns.c

Pārbaudīsim šo kodu, izmantojot noklusējuma a.no faila, kas izveidots izpildes laikā. Tātad, izmēģiniet šo a.out komandu, lai pārbaudītu sistēmas “write” izsaukuma izvadi. Mums tas jāizmanto ar “./ ”, Lai izvēlētos failu no pašreizējā direktorija.

$ ./ a.ārā

Redzamajā izvadā ir parādīts tikai vārds “Aqsa” skaita skaitļa 5 dēļ.

Nedaudz mainīsim kodu. Mēs esam mainījuši skaitīšanas skaitli uz 11, jo mūsu bufera datos “Aqsa Yasin” kopā ir 11 baiti. Tāpēc šoreiz izvadē tiks parādīti visi virknes datu baiti “Aqsa Yasin”. Saglabājiet šo failu, izmantojot Ctrl + S, un aizveriet, izmantojot īsinājumtaustiņu Ctrl + X.

Apkoposim atjaunināto kodu, izmantojot tikko instalēto Linux izplatīšanas gcc kompilatoru. Izmēģiniet to pašu komandu gcc kopā ar faila nosaukumu kā “jauns.c ”.

$ gcc jauns.c

Tagad parādiet tā paša koda izvadi, izmantojot iepriekšējo “a.out ”komandu, kā norādīts zemāk. Izvade parāda pilnu bufera virkni “Aqsa Yasin”.

$ ./ a.ārā

Apskatīsim, kā darbojas kods, kad skaitīšanas skaitlis ir lielāks par kopējo baitu skaitu, kas ir bufera datos. Tātad skaitīšanu izmantojām kā 30. Saglabājiet un aizveriet failu.

Apkopojiet to pašu atjaunināto failu, izmantojot komandu gcc, kā norādīts zemāk.

$ gcc jauns.c

Tagad izpildiet failu, izmantojot a.out komandu, un izvade parādīs bufera datus, kā arī dažas atkritumu vērtības ar to, kā parādīts momentuzņēmuma izvadē zemāk.$ ./ a.ārā

Varat arī pārbaudīt kopējo failā ierakstīto baitu skaitu, izmantojot zemāk esošo kodu tajā pašā failā.

Apkopojiet kodu ar gcc instrukciju.

$ gcc jauns.c

Rezultātā tiek parādīts kopējais baitu skaits, ieskaitot bufera datus un līnijas pārtraukumu, izmantojot a.out komandu.

$ ./ a.ārā

Secinājums:

Šajā apmācībā mēs esam izstrādājuši jēdzienu, lai izmantotu “Write” sistēmas izsaukumu C. Izmēģiniet visus piemērus, lai izprastu sistēmas rakstīšanas izsaukuma ideju, izmantojot šo rakstu.

Kā izmantot Xdotool, lai stimulētu peles klikšķus un taustiņsitienus Linux
Xdotool ir bezmaksas un atvērtā koda komandrindas rīks peles klikšķu un taustiņu simulāciju simulēšanai. Šajā rakstā būs īss ceļvedis par xdotool izma...
5 labākie ergonomiskie datoru peles izstrādājumi Linux
Vai ilgstoša datora lietošana izraisa sāpes plaukstas locītavā vai pirkstos? Vai jūs ciešat no stīvām locītavām un jums pastāvīgi ir jāspiež rokas? Va...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...