Sistemski klic Linux chdir v C

Sistemski Klic Linux Chdir V C



Spremembe trenutnega delovnega imenika naprave se izvedejo z metodo 'CHDIR'. V različnih okoliščinah se lahko odločite spremeniti trenutno delovno mapo vaše naprave. Ali pa želite zagnati skript C iz mape namesto iz trenutnega delovnega imenika. Posledično morate za zagon te specifične kode C spremeniti svojo trenutno delovno mapo. Poleg tega se lahko za hitro ugotavljanje, kdaj se je trenutna delovna mapa spremenila, uporabi metoda »getcwd« kodirnega jezika C. Zdaj bomo v tem članku uporabili funkcijo chdir() jezika C za spreminjanje delovnega imenika.

Primer 01:

Začnimo z delovanjem funkcije chdir() jezika C v operacijskem sistemu Linux. Za to se morate prepričati, da je prevajalnik C že nameščen na vašem koncu. V večini primerov uporabljamo prevajalnik »gcc« za C v našem operacijskem sistemu Kali Linux. Za začetek tega primera moramo imeti datoteko C s pripono 'c'. Poimenovali smo ga p1.c in ga poskušali odpreti z »nano« urejevalnikom Linuxa, kot je prikazano spodaj.







Ko se vaša datoteka odpre v urejevalniku, morate začeti kodirati vanjo. Naš program C smo začeli z dodajanjem knjižnic glavnih glav jezika C, ki so obvezne za vsak program C. Zato se knjižnici glav stdio.h in unistd.h uporabljata za zagotovitev, da lahko standardni vhod in izhod tečeta znotraj programa. Glava unistd.h je bila uporabljena za uporabo nekaterih standardnih funkcij jezika C, ki so potrebne zlasti za ta primer. Zdaj smo zagnali funkcijo gonilnika main() za C v tej kodi, da se samodejno izvaja ob izvajanju. Spremenljivka niza znakovnega tipa »path« je bila definirana z velikostjo 100, ker hrani samo 100 vrednosti.



Stavek funkcije printf() je bil uporabljen za preprosto tiskanje trenutne mape delovnega imenika te datoteke C s funkcijo »getcwd()«. Ta funkcija uporablja matrično spremenljivko »path« z velikostjo 100, da pridobi trenutni delovni imenik v njem in ga posreduje stavku funkcije printf() za prikaz. Zdaj je čas za uporabo funkcije chdir(). Posredujemo lahko poljubne znake, da določimo, ali se želimo premakniti naprej v imeniku ali nazaj v istem imeniku.



Zato smo poskusili uporabiti znake »..« v stavku funkcije chdir(), da se premaknemo iz trenutnega delovnega imenika v smeri nazaj, tj. eno raven pod trenutnim delovnim imenikom. Upoštevajte, da trenutno delamo v projektni mapi našega glavnega delovnega imenika »Linux« sistema Kali Linux. Zdaj smo po uporabi funkcije »chdir« v imeniku »Linux« namesto v imeniku »projekt«. Zdaj smo znova poskusili s funkcijo funkcije »printf()« prikazati trenutni delovni imenik z uporabo funkcije »getcwd« v njem. Naš program se konča s stavkom return 0.





Ko shranimo ta program C, ga moramo prevesti s prevajalnikom »gcc«, ki smo ga že konfigurirali. Z uporabo tega navodila gcc smo ustvarili objektno datoteko te datoteke C z imenom »p1.out« z uporabo možnosti –o, kot je prikazano spodaj.



Zdaj, ko zaženete njegovo objektno datoteko v vašem terminalu Linux, boste najprej dobili delovni imenik, ki ga uporablja program, preden uporabite funkcijo chdir(). Po uporabi funkcije chdir() smo se premaknili v en spodnji imenik in prikazan je »domači« imenik.

Primer 02:



Z uporabo istih knjižnic glav smo zagnali to programsko kodo. Znotraj funkcije main() tega programa smo uporabljali stavek 'if' z uporabo funkcije chdir() v njem.

Ta funkcija bo preverjala, ali “/user” obstaja v sistemu ali ne, tako da nastavi pogoj “/user!=0”. Če imenik v trenutnem sistemu ne obstaja, bo klic funkcije perror uporabljen za prikaz ustreznega sporočila o napaki, tj. »uporabniški imenik ne obstaja. Uporabljali smo drug stavek »if« z uporabo funkcije chdir() v njem. Namen uporabe funkcije chdir() tukaj je prav tako enak kot v zgornjem stavku if, ki je za preverjanje, ali imenik obstaja ali ne, z uporabo pogoja “/temp”!=0. Edina razlika je uporaba novega imena imenika »/temp« namesto »/user«, kot lahko vidite na spodnji sliki kode.







Če imenik /temp ne obstaja v sistemu, bi funkcija napake, uporabljena v stavku »if«, vrgla sporočilo o napaki »imenik /temp ne obstaja«, kot je prikazano na spodnji sliki. Po uporabi obeh stavkov »if« smo to kodo zaključili s stavkom C return 0. Zdaj je program končan. Našo kodo C smo shranili z uporabo bližnjice Ctrl+S pred njeno izvedbo.





Zdaj, ko je datoteka shranjena v vašem sistemu, moramo prevesti kodo C s prevajalnikom »gcc«, ki smo ga že namestili na našem koncu. Z uporabo tega navodila smo ustvarili njegovo objektno datoteko 'p2.out' z uporabo možnosti –o v navodilu.





Po izvedbi ustvarjene objektne datoteke »p2.out« z znaki »./« smo izvedeli, da oba imenika, omenjena na poti »chdir«, ne obstajata v sistemu ali pa se je pokazala napaka, prikazana v lupini to pravilno.



Zaključek

V današnjem članku smo prikazali uporabo funkcije chdir() jezika C v operacijskem sistemu Kali Linux. Že prvi primer ponazarja, kako je mogoče uporabiti funkcijo chdir() za spreminjanje delovnega imenika, tj. premikanje iz enega imenika v drugega. Zadnji primer C-ja prikazuje, kako lahko preverimo, ali je trenutni delovni imenik, določen v poti chdir(), obstajal ali ne.