C Programiranje

Kako uporabljati odprti sistemski klic v C

Kako uporabljati odprti sistemski klic v C

Sistemski klici se uporabljajo v distribucijah Linuxa, da zagotovijo vrata znotraj sistema Linux in programov. Operacijski sistem Linux uporablja knjižnico Glibc za podporo sistemskim klicem v njem med uporabo jezika C. Obstaja veliko več načinov za uporabo tudi sistemskih klicev. V tem članku bomo razpravljali o odprtem sistemskem klicu v sistemu Linux. Sistemski klic “Odpri” je bil uporabljen za hitro odpiranje datoteke, ki je navedena na poti. Sporočil nam je opisnik datoteke uporabniško ustvarjene datoteke. Uporabljamo Ubuntu 20.04, da dobite praktični sistemski odprt klic.

Namestite knjižnice

Jezik C kot predpogoj zahteva namestitev dodatnih paketov knjižnic. Najprej morate namestiti paket manpages-dev, da preverite informacije o sistemskih klicih. Odprite terminal ukazne vrstice iz področja dejavnosti in izvedite spodnja navodila za namestitev strani.

$ sudo apt install manpages-dev

Rezultati za dokončanje namestitve so navedeni spodaj.

Zdaj bomo z ukazom "man" preverili, ali je sistemski klic odprt, kot spodaj.

$ man 2 odprto

Izhodna man stran za sistemski klic “Odpri” je prikazana spodaj. O tem si lahko ogledate dodatne informacije. Pritisnite gumb “q”, da ga zaprete.

Zgornja sintaksa prikazuje prve tri vrstice potrebnih knjižnic, ki jih je treba dodati za sistemske klice. Za odprti sistemski klic so na voljo tri sintakse. Prva sintaksa prikazuje "ime poti", kar je ime datoteke, ki jo je treba odpreti. Drugi parameter, »zastavice«, prikazuje način datoteke, npr.g., beri ali piši. Drugo sintakso lahko uporabite, kadar datoteka ne obstaja. Parametrski način se uporablja za prikaz pravic v datoteki.

Zdaj je čas, da namestite prevajalnik GCC za odpravljanje napak kode C v Ubuntu 20.04 Distribucija Linuxa. Za to v lupini izvedite spodnja navodila.

$ sudo apt namestite gcc

Če želite nadaljevati z namestitvijo prevajalnika GCC, tapnite »Y«, sicer pritisnite gumb »n«, da zaprete namestitev. Torej pritisnite gumb "y" in za nadaljevanje pritisnite Enter.

Izhod za zaključek je prikazan spodaj.

Primer 01

Poglejmo si zelo preprost primer sistemskega klica "Odpri". Najprej odprite ukazno lupino in ustvarite novo besedilno datoteko "test".txt "z uporabo preprostega ukaza na dotik, kot sledi:

$ test na dotik.txt

Nekaj ​​podatkov mu dodajte ročno. Podatke lahko vidite v datoteki z uporabo spodnjega ukaza mačka.

$ mačji test.txt

Zdaj pa ustvarimo novo datoteko C z uporabo ukaza nano v lupini, kot je prikazano spodaj.

$ nano novo.c

Odprla se bo spodnja nano datoteka GNU. Vanj morate vnesti spodnjo kodo jezika C. Vidite, da smo dodali potrebne knjižnične pakete za pravilno izvajanje kode C. Po tem smo opredelili glavno funkcijo za delo v odprtem sistemskem klicu. Deklarirali smo dve celoštevilčni spremenljivki. Spremenljivka "n" se uporablja za štetje medpomnilniških vrednosti, "fd" pa za deskriptor datoteke. Niz vmesnega pomnilnika vrste znakov smo razglasili za "buf", ki ima velikost 50. Odprti sistemski klic je bil uporabljen za branje vsebine iz datoteke „test“.txt "in ga vrnite deskriptorju datoteke. Oznaka „O_RDONLY“ je bila uporabljena za branje. V naslednji vrstici je prikazan sistemski klic za branje, da zbere 10 bajtov iz vmesnega pomnilnika in ga vrne v celo število n. Ukaz za pisanje je bil uporabljen tudi za zapisovanje vsebine ali podatkov medpomnilnika v deskriptor datoteke, kar je izhodni zaslon. V našem primeru zdaj. Datoteko shranite s tipkama Ctrl + S in jo zaprite z ukazom Ctrl + X.

#include
#include
#include
#include
int main ()

int n, fd;
char buf [50];
fd = odprto (“test.txt ", O_RDONLY);
n = prebrano (fd, buf, 10);
piši (1, buf, 10);

Najprej sestavimo kodo C za odprti sistemski klic z uporabo spodnjega ukaza gcc.

$ gcc novo.c

Zdaj je čas, da preverimo izhod za kodo C za odprt sistemski klic. Uporabimo spodnji a.out ukaz v lupini. Izhodni podatki prikažejo 10 bajtov iz vsebine datoteke "test".txt ".

$ ./ a.ven

Vzemimo še en primer za zapisovanje vsebine ene datoteke v drugo s pomočjo odprtega sistemskega klica. Če želite ustvariti novo datoteko C z ukazom nano, kot je prikazano spodaj.

$ nano novo.c

Vzemite torej isto kodo z manjšo spremembo. V kodi smo definirali še en deskriptor datoteke kot "fd1". Vsa koda je enaka, razen ene dodatne vrstice. Druga zadnja vrstica kode je z odprtim sistemskim klicem ustvarila novo datoteko z imenom "target" z uporabo O_CREAT in načina, samo za pisanje kot O_WRONLY. 0642 prikazuje privilegije, dodeljene tej datoteki. Datoteka je bila vrnjena novemu deskriptorju datoteke. V naslednji vrstici je prikazan ukaz za zapisovanje bajtov vsebine v medpomnilnik v skladu z deskriptorjem datoteke. Datoteko shranite in zaprite.

Izvedite ukaz gcc compile za odpravljanje napak v jezikovni datoteki C.

$ gcc novo.c

Če želite prikazati izhodno kodo C, poskusite a.navodila v lupini, kot je prikazano spodaj. Izhoda ni, ker je bil preusmerjen na novo ustvarjeno datoteko "target".

$ ./ a.ven

Preverimo podatke ciljne datoteke z ukazom cat. Izhod kaže, da ima datoteka 20 bajtov.

$ mačka tarča

Zaključek

V zgornji vadnici smo vam razložili uporabo odprtega sistemskega klica v jeziku C z uporabo prevajalnika gcc. S pomočjo različnih primerov, pojasnjenih v tem priročniku, boste pripeljali do želenega programa.

Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...