Kuidas kasutada kirjutamissüsteemi kõnet C -s

How Use Write System Call C

Süsteemikõne on peamine lüüs programmide ja Linuxi operatsioonisüsteemi tuuma vahel. Kuigi teil on peaaegu kindlasti vaja C -programmeerimiskarjääri vältel süsteemikõnet, olenemata sellest, kas soovite saavutada erakordset tootlikkust või teatud stiili funktsioone, piisab Glibci hoidlast või muudest populaarsetest Linuxi distributsioonidest leitud tavalistest raamatukogudest. nõuded. Selles juhendis kehtestame C -keeles kirjutamissüsteemi kõne kontseptsiooni.

Süntaks:

#kaasake

ssize_tkirjutada(int fd, const void*buf, suurus_t loeb);

Selles ülaltoodud süntaksis näitab esimene rida süsteemikõnede kogu. Teisel real tähistab fd faili kirjeldust, mis on tõepoolest number, mis määrab protsessi avatud faili. Märksõna *buf tähistab puhvrit. See sisaldab kõiki andmeid. Järgmine on loendamine. See on puhvrist failikirjeldusse kirjutatavate baitide arv.

Paigaldamise eeltingimused:

Mis tahes C keele koodi käitamiseks peate esmalt installima mõned Linuxi distributsiooni paketid. Kui soovite näha kirjutamissüsteemi kõne kohta lisateavet, peate selleks installima paketi manpages-dev. Terminali avamiseks kiirklahvi Ctrl+Alt+T abil. Pärast selle avamist kirjutage manpages installimiseks allolev käsk apt install ja sellele järgnev märksõna manpages-dev.



$sudoasjakohanepaigaldadamanpages-dev



Manpage'i installimine võtab natuke aega. Oodake, kuni see lõpule jõuab.

Pärast installimist näete kirjutamissüsteemi kõne kohta lisateavet kesta käsu all oleva käsu kaudu.



$mees 2 kirjutada

Kirjutuskäsu väljundi man -leht on toodud allpool. Saate selle kohta teavet lugeda. Kasutusjuhendist väljumiseks vajutage nuppu q.

Nüüd on aeg installida Gcc pakett oma Linuxi süsteemi C -keeles töötamiseks. Selleks avage kest ja kirjutage allpool käsk apt install, millele järgneb märksõna gcc.

$sudoasjakohanepaigaldada gcc

Vahepeal võib installimise ajal paluda teil seda toimingut kinnitada, vajutades jätkamiseks y ja peatamiseks nuppu n. Niisiis, puudutage y -klahvi ja vajutage sisestusklahvi.

See installitakse teie süsteemi mõne minuti jooksul ja viimased väljundread on sellised, nagu on näidatud alloleval pildil.

Näited:

Olgu mõned näited kirjutamissüsteemi kõne kohta meie Linuxi distributsioonis. Seetõttu avage käsurea kest ja looge sinna uus C-fail koos punkti c laiendiga. Selle kiireks loomiseks ja avamiseks peate kasutama allolevat nano -käsku. Oleme andnud sellele uue nime. C

$nanouus.c

Avaneb allolev aken. Nüüd peate sellesse faili lisatud koodi kirjutama. Sellesse koodi oleme lisanud esmalt unistd.h raamatukogu. Seejärel oleme loonud põhifunktsiooni ja selle funktsiooni raames loonud kirjutamissüsteemi kõne. Selle süsteemikõne puhul on kõige esimene parameeter faili kirjeldus. Sel juhul tähistab täisarv 1 väljundseadme ekraani ja see on fikseeritud. Seega kuvatakse meie väljund ekraanil. Teine parameeter näitab puhvri andmeid. Saate sellele midagi lisada. Ja viimane parameeter näitab puhverparameetris antud andmete loendamisnumbrit. Nagu oleme loendusarvuna maininud 5, näitab see ainult puhvri andmete esimest 5 baiti ja ignoreerib allesjäänud baite. Salvestage see kood, kasutades kiirklahvi Ctrl+S ja väljuge sellest failist, kasutades käsku Ctrl+X.

#kaasake

Int peamine()

{Kirjutage(1Aqsa Yasin5);}

Nüüd proovige terminalis allolevat käsku gcc, et kompileerida see äsja loodud kood failinimega.

$gccuus.c

Vaatame selle koodi läbi, kasutades käivitusajal loodud vaikefaili a.out. Niisiis, proovige allolevat käsku a.out, et kontrollida kirjutamissüsteemi kõne väljundit. Peame seda kasutama koos ./ -ga, et valida fail praegusest kataloogist.

$./a. välja

Nähtav väljund on loendusnumbri 5 tõttu näidanud ainult sõna Aqsa.

Muutame oma koodi natuke. Oleme muutnud loendusnumbri 11 -le, kuna meie puhverandmetes on kokku 11 baiti Aqsa Yasin. Nii et seekord kuvatakse väljundis kogu stringi andmete baiti Aqsa Yasin. Salvestage see fail klahvikombinatsiooni Ctrl+S abil ja sulgege see kiirklahvi Ctrl+X abil.

Koostame värskendatud koodi, kasutades Linuxi levitamiseks äsja installitud gcc kompilaatorit. Proovige sama käsku gcc koos faili nimega nagu new.c.

$gccuus.c

Nüüd näidake sama koodi väljundit, kasutades eelmist käsku a.out nagu allpool. Väljund näitab puhvri täielikku stringi Aqsa Yasin.

$./a. välja

Vaatame, kuidas kood töötab, kui võtame loendusnumbri suuremaks kui puhvri andmete baitide koguarv. Niisiis oleme loendit kasutanud 30. Salvestage ja sulgege fail.

Kompileerige sama värskendatud fail gcc käsu abil, nagu allpool.

$gccuus.c

Nüüd käivitage fail käsu a.out abil ja väljund näitab puhvri andmeid ja mõningaid prügiväärtusi, nagu on näidatud alloleval hetktõmmisväljundil. $ ./A.out

Failisse kirjutatud baitide koguarvu saate vaadata ka samas failis oleva alloleva koodi abil.

Kompileerige kood gcc juhiste järgi.

$gccuus.c

Väljund näitab baitide koguarvu, sealhulgas puhverandmeid ja reavahet, kasutades käsku a.out.

$./a. välja

Järeldus:

Selles õpetuses oleme välja töötanud idee kirjutamissüsteemi kõne kasutamiseks C -s. Proovige kõiki näiteid, et mõista selle artikli abil kirjutamissüsteemi kõne ideed.