C Ohjelmointi

Kirjoitusjärjestelmän puhelun käyttäminen C ssä

Kirjoitusjärjestelmän puhelun käyttäminen C ssä

Järjestelmäkutsu toimii ensisijaisena yhdyskäytävänä ohjelmien ja Linux-käyttöjärjestelmän ytimen välillä. Vaikka sinun tarvitsee melkein varmasti kutsua järjestelmäkutsu koko C-ohjelmointikauden ajan, riippumatta siitä, tähtäykö poikkeukselliseen tuottavuuteen tai tiettyyn ominaisuuteen, Glibc-arkisto tai muut suosituista Linux-alueista löytyvät tavalliset kirjastot riittävät suurimmalle osalle sinun vaatimukset. Tässä oppaassa luomme käsitteen kirjoitusjärjestelmän kutsusta C-kielellä.

Syntaksi:

#sisältää
ssize_t write (int fd, const void * buf, size_t count);

Tässä yllä olevassa syntaksissa ensimmäinen rivi näyttää kirjaston järjestelmäpuheluille. Toisella rivillä fd tarkoittaa tiedostokuvaajaa, joka on todellakin numero, joka määrittää prosessin avoimen tiedoston. Avainsana * buf tarkoittaa puskuria. Tämä sisältää kaikki siinä olevat tiedot. Seuraava on laskenta. Se on puskurista tiedostokuvaajaan kirjoitettavien tavujen lukumäärä.

Asennuksen edellytykset:

C-kielikoodin suorittamiseksi sinun on ensin asennettava joitain paketteja Linux-jakeluun. Jos haluat nähdä lisätietoja kirjoitusjärjestelmäkutsusta, sinun on asennettava manpages-dev-paketti. Päätelaitteen avaaminen Ctrl + Alt + T-pikanäppäimellä. Kun olet avannut sen, kirjoita alla oleva apt install -komento ja sen jälkeen manpages-dev-avainsana manpagesin asentamiseksi.

$ sudo apt asenna manpages-dev

Manpagesin asentaminen vie jonkin aikaa. Odota, että se valmistuu.

Asennuksen jälkeen näet lisätietoja kirjoita järjestelmäkutsusta kuoressa olevan man-komennon kautta.

$ mies 2 kirjoittaa

”Kirjoita” -komennon lähtösivusivu on annettu alla. Voit lukea tietoja siitä. Lopeta käsikirja painamalla q.

Nyt on aika asentaa Gcc-paketti Linux-järjestelmääsi toimimaan C-kielellä. Tätä varten avaa kuori ja kirjoita alla oleva apt install -komento, jota seuraa avainsana "gcc".

$ sudo apt asenna gcc

Sillä välin asennuksen aikana se voi pyytää sinua vahvistamaan tämän asennustoiminnon painamalla "y" jatkaaksesi ja "n" lopettaaksesi sen. Napauta siis y-näppäintä ja paina Enter-näppäintä.

Se asennetaan järjestelmään muutaman minuutin kuluessa, ja viimeiset tulosrivit ovat alla olevan tilannekuvan mukaiset.

Esimerkkejä:

Otetaan joitain esimerkkejä "kirjoita" -järjestelmäkutsusta Linux-jakelussa. Siksi avaa komentorivin kuori ja luo siihen uusi C-tiedosto, jossa on piste ”c”. Sinun on käytettävä alla olevaa nano-komentoa sen luomiseen ja avaamiseen nopeasti. Olemme antaneet sille nimen "uusi.c ”.

$ nano uusi.c

Alla oleva ikkuna avautuu. Nyt sinun on kirjoitettava liitetty koodi tähän tiedostoon. Tähän koodiin on sisällytetty unistd.h kirjasto ensin. Sitten olemme luoneet päätoiminnon, ja tässä toiminnossa olemme luoneet "kirjoita" järjestelmäkutsun. Tässä järjestelmäkutsussa ensimmäinen parametri on tiedostokuvaaja. Tässä tapauksessa kokonaisluku 1 edustaa lähtölaitteen näyttöä, ja se on kiinteä. Joten tuotoksemme näytetään näytöllä. Toinen parametri näyttää puskuritiedot. Voit lisätä siihen mitä tahansa. Ja viimeinen parametri näyttää puskuriparametrissa annettujen tietojen lukumäärän. Kuten olemme maininneet 5 lukumääränä, se näyttää vain 5 ensimmäistä tavua puskuridataa ja jättää huomiotta jäljellä olevat tavut. Tallenna tämä koodi käyttämällä Ctrl + S-pikanäppäintä ja poistu tiedostosta Ctrl + X-komennolla.

#sisältää
Int main ()
Kirjoita (1, "Aqsa Yasin", 5);

Kokeile nyt päätelaitteessa alla olevaa gcc-komentoa kääntääksesi vasta luodun koodin tiedostonimellä.

$ gcc uusi.c

Tarkistetaan tämä koodi käyttämällä a-oletusarvoa.ajasta luodun tiedoston. Joten, kokeile alla olevaa a.out-komento tarkistaa "kirjoita" -järjestelmäkutsun lähtö. Meidän on käytettävä sitä./ ”Valitaksesi tiedoston nykyisestä hakemistosta.

$ ./ a.ulos

Näkemässäsi lähdössä on näytetty vain sana "Aqsa" laskunumeron 5 takia.

Muutetaan koodiamme hieman. Olemme muuttaneet lukumäärän 11: ksi, koska puskuritiedoissa "Aqsa Yasin" on yhteensä 11 tavua. Joten tällä kertaa lähtö näyttää kaikki tavut merkkijonotiedot "Aqsa Yasin". Tallenna tämä tiedosto painamalla Ctrl + S ja lopeta käyttämällä Ctrl + X-pikanäppäintä.

Kootaan päivitetty koodi uudella Linux-jakelua varten asennetulla gcc-kääntäjällä. Kokeile samaa gcc-komentoa ja tiedoston nimeä kuin uusi.c ”.

$ gcc uusi.c

Näytä nyt saman koodin lähtö käyttämällä edellistä “a.ulos ”-komento kuten alla. Lähtö näyttää puskurin koko merkkijonon "Aqsa Yasin".

$ ./ a.ulos

Katsotaanpa, kuinka koodi toimii, kun otamme lukumäärän, joka on suurempi kuin puskuridatan tavujen kokonaismäärä. Joten olemme käyttäneet lukua 30. Tallenna ja sulje tiedosto.

Käännä sama päivitetty tiedosto gcc-komennolla kuin alla.

$ gcc uusi.c

Suorita tiedosto nyt a-näppäimellä.out -komento, ja lähtö näyttää puskuritiedot sekä joitain roskiarvoja sen kanssa, kuten alla olevassa tilannekuvan lähdössä näkyy.$ ./ a.ulos

Voit myös tarkistaa tiedostoon kirjoitettujen tavujen kokonaismäärän käyttämällä alla olevaa koodia samassa tiedostossa.

Käännä koodi gcc-käskyllä.

$ gcc uusi.c

Lähtö näyttää tavujen kokonaismäärän, mukaan lukien puskuridata ja rivinvaihto, käyttämällä a.ulos komento.

$ ./ a.ulos

Päätelmä:

Tässä opetusohjelmassa olemme kehittäneet konseptin käyttää kirjoita järjestelmäkutsua C: ssä. Kokeile kaikkia esimerkkejä ymmärtääksesi "kirjoita" -järjestelmäkutsun tämän artikkelin avulla.

Parhaat Linux-peliohjaimen kartoitussovellukset
Jos haluat pelata pelejä Linuxissa peliohjaimella tyypillisen näppäimistön ja hiiren syöttöjärjestelmän sijaan, on sinulle hyödyllisiä sovelluksia. Mo...
Hyödyllisiä työkaluja Linux-pelaajille
Jos haluat pelata pelejä Linuxissa, on todennäköistä, että olet käyttänyt sovelluksia ja apuohjelmia, kuten Wine, Lutris ja OBS Studio, pelikokemuksen...
HD Remastered Games for Linux that Never had a Linux Release Earlier
Many game developers and publishers are coming up with HD remaster of old games to extend the life of franchise, please fans requesting compatibility ...