Kuidas kasutada avatud süsteemi kõnet C -s

How Use Open System Call C



Süsteemikõnesid kasutatakse Linuxi distributsioonides, et pakkuda ukseava Linuxi operatsioonisüsteemis ja programmides. Linuxi operatsioonisüsteem kasutab Glibci teeki, et toetada selles süsteemikõnesid C -keele kasutamise ajal. Samuti on süsteemikõnede kasutamiseks palju rohkem võimalusi. Selles artikli juhendis käsitleme avatud süsteemi kõnet Linuxi süsteemis. Avatud süsteemi kõnet on kasutatud teele määratud faili kiireks avamiseks. See andis meile teada kasutaja loodud faili failikirjeldusest. Oleme kasutanud Ubuntu 20.04, et saada praktilist avatud süsteemi kõnet.

Installige teegid

C -keel nõuab eeltingimustena mõne täiendava teegipaketi installimist. Kõigepealt peate installima manpages-dev paketi, et kontrollida süsteemikõnedega seotud teavet. Avage tegevuspiirkonnast käsurea terminal ja täitke alltoodud juhised lehtede installimiseks.







$ sudo apt install manpages-arendaja



Paigaldamise lõpuleviimise väljund on toodud allpool.







Nüüd kontrollime avatud süsteemi kõnet, kasutades käsku man, nagu allpool.

$ mees2lahti



Allpool on näidatud avatud süsteemi kõne väljundmenüü. Näete selle kohta lisateavet. Väljumiseks vajutage nuppu q.

Ülaltoodud süntaks näitab süsteemikõnede jaoks vajalike teekide esimest kolme rida. Avatud süsteemikõne jaoks on saadaval kolm süntaksit. Esimene süntaks näitab tee nime, mis on avatava faili nimi. Teine parameeter, lipud, näitab faili režiimi, nt lugemist või kirjutamist. Teist süntaksit saab kasutada siis, kui faili pole olemas. Parameetrirežiimi kasutatakse faili õiguste kuvamiseks.

Nüüd on aeg installida GCC kompilaator C -koodi silumiseks Ubuntu 20.04 Linuxi distributsioonis. Selleks täitke kestas alltoodud juhis.

$ sudo apt install gcc

GCC kompilaatori installimise jätkamiseks peate puudutama Y, vastasel juhul klõpsake installimise sulgemiseks nuppu n. Seetõttu vajutage jätkamiseks nuppu y ja vajutage sisestusklahvi.

Lõpetamise väljund on näidatud allpool.

Näide 01

Vaatame avatud süsteemi kõne väga lihtsat näidet. Esiteks avage käsu kest ja looge uus tekstifail test.txt, kasutades lihtsat puutetundlikku käsku järgmiselt:

$puudutadatest.txt

Lisage sellele käsitsi mõned andmed. Faili andmeid näete, kasutades alltoodud käsku cat.

$kasstest.txt

Nüüd loome uue C -faili, kasutades kesta nano -käsku, nagu allpool näidatud.

$nanouus.c

Avaneb allolev GNU nano -fail. Sellesse peate sisestama allpool oleva C keele koodi. Näete, et oleme lisanud C -koodi nõuetekohaseks täitmiseks vajalikud teekipaketid. Pärast seda oleme määratlenud põhifunktsiooni, mis töötab avatud süsteemi kõnega. Oleme deklareerinud kaks täisarvulist muutujat. Muutujat n kasutatakse puhverväärtuste loendamiseks ja fd faili kirjeldamiseks. Märgistustüübi puhvermassiivi kuulutasime bufiks suurusega 50. Avatud süsteemi kõnet on kasutatud faili test.txt sisu lugemiseks ja failikirjeldusse tagastamiseks. O_RDONLY on kasutatud lugemiseks. Järgmine rida näitab lugemissüsteemi kõnet, et koguda puhverist 10 baiti ja tagastada see täisarvu n. Samuti on kirjutamise käsku kasutatud sisu või puhverandmete kirjutamiseks faili kirjeldusse, mis on meie puhul praegu väljundekraan. Salvestage see fail klahvikombinatsiooni Ctrl+S abil ja sulgege see käsuga Ctrl+X.

#kaasake
#kaasake
#kaasake
#kaasake

intpeamine()
{
intn,fd;
süsibuf[viiskümmend];
fd=lahti(test.txt,O_RDONLY);
n=loe(fd,buf, 10);
kirjutada(1 ,buf, 10);

Koostame kõigepealt avatud süsteemi kõne C -koodi, kasutades allolevat käsku gcc.

$gccuus.c

Nüüd on aeg kontrollida avatud süsteemi kõne C -koodi väljundit. Kasutame kesta all olevat käsku a.out. Väljund kuvab 10 baiti faili test.txt sisust.

$./et.välja

Võtame teise näite ühe faili sisu kirjutamiseks teise faili, kasutades avatud süsteemi kõnet. Uue C -faili loomiseks, kasutades nano -käsku, nagu allpool.

$ nano uus.c

Nii et võtke sama kood koos väikese muudatusega. Oleme koodis määratlenud teise failikirjelduse kui fd1. Kogu kood on sama, välja arvatud üks lisarida. Koodi teine ​​viimane rida on kasutanud avatud süsteemi kõnet, et luua uus fail nimega target, kasutades O_CREAT ja režiimi, kirjutades ainult O_WRONLY. 0642 näitab sellele failile määratud õigusi. Ja fail on tagasi uude failikirjeldusse. Järgmisel real on näidatud käsk sisu baitide kirjutamiseks puhvrisse vastavalt selle failikirjeldusele. Salvestage fail ja sulgege see.

C -keelefaili silumiseks käivitage käsk gcc compile.

$ gcc uus.c

C -koodi väljundi kuvamiseks proovige kesta a.out käsku, nagu allpool. Väljundit pole, kuna väljund on ümbersuunatud äsja loodud faili sihtmärgile.

$./et.välja

Kontrollime faili sihtmärgi andmeid, kasutades käsku cat. Väljund näitab, et failis on 20 baiti.

$ kassi sihtmärk

Järeldus

Ülaltoodud õpetuses selgitasime teile gcc kompilaatori abil avatud süsteemikõne kasutamist C -keeles. Selles juhendis selgitatud erinevate näidete abil saate soovitud programmi ellu viia.