Linux chdir sistemski poziv u C

Linux Chdir Sistemski Poziv U C



Promjene u trenutnom radnom direktoriju uređaja vrše se metodom 'CHDIR'. U raznim okolnostima možete odlučiti promijeniti trenutnu radnu mapu svog uređaja. Ili želite pokrenuti C skriptu iz mape umjesto iz trenutnog radnog direktorija. Posljedično, da biste pokrenuli taj specifični C kod, morate modificirati svoju trenutnu radnu mapu. Dodatno, metoda 'getcwd' kodnog jezika C može se koristiti za brzo određivanje kada se trenutna radna mapa promijenila. Sada ćemo koristiti funkciju chdir() u C-u u ovom članku za promjenu radnog direktorija.

Primjer 01:

Počnimo s radom funkcije chdir() za C u operativnom sustavu Linux. Za ovo, morate biti prilično sigurni da je prevodilac C-a već montiran na vašoj strani. U većini slučajeva koristimo 'gcc' kompajler za C u našem operativnom sustavu Kali Linux. Za početak s ovim primjerom, moramo imati C datoteku s ekstenzijom 'c'. Nazvali smo ga p1.c i pokušali ga otvoriti s 'nano' uređivačem Linuxa kako je prikazano u nastavku.







Kada se vaša datoteka otvori u editoru, morate početi kodirati u njoj. Započeli smo naš C program dodavanjem glavnih biblioteka zaglavlja C-a koje su obavezne u svakom C programu. Stoga se biblioteke zaglavlja stdio.h i unistd.h koriste kako bi se osiguralo da standardni ulaz i izlaz mogu teći unutar programa. Zaglavlje unistd.h korišteno je za korištenje nekih standardnih funkcija C-a koje su posebno potrebne za ovaj primjer. Sada smo pokrenuli funkciju pokretačkog programa main() za C u ovom kodu da se automatski pokreće pri izvođenju. Varijabla niza tipa znakova “put” definirana je s veličinom 100 jer pohranjuje samo 100 vrijednosti.



Izjava funkcije printf() korištena je za jednostavno ispisivanje trenutne mape radnog direktorija ove C datoteke pomoću funkcije 'getcwd()'. Ova funkcija koristi varijablu niza 'path' veličine 100 da dobije trenutni radni direktorij u njemu i proslijedi ga funkcijskoj izjavi printf() za prikaz. Sada je vrijeme da upotrijebite funkciju chdir(). Možemo proslijediti bilo koju vrstu znakova kako bismo odredili želimo li se pomaknuti naprijed u direktoriju ili unatrag unutar istog direktorija.



Dakle, isprobali smo znakove “..” u izjavi funkcije chdir() za pomicanje iz trenutnog radnog direktorija u smjeru unatrag, tj. jednu razinu ispod trenutnog radnog direktorija. Imajte na umu da upravo sada radimo u mapi projekta našeg glavnog “Linux” radnog direktorija Kali Linux sustava. Sada smo u direktoriju “Linux” umjesto u direktoriju “projekt” nakon korištenja funkcije “chdir”. Sada smo još jednom pokušali s funkcijskom naredbom “printf()” prikazati trenutni radni direktorij pomoću funkcije “getcwd” u njemu. Naš program završava naredbom return 0.





Nakon što spremimo ovaj C program, trebamo ga prevesti pomoću 'gcc' prevodioca koji smo već konfigurirali na našoj strani. Koristeći ovu gcc instrukciju, stvorili smo objektnu datoteku ove C datoteke pod nazivom 'p1.out' koristeći opciju –o kao što je prikazano u nastavku.



Sada, kada pokrenete njegovu objektnu datoteku na vašem Linux terminalu, prvo ćete dobiti radni direktorij koji koristi program prije upotrebe funkcije chdir(). Nakon upotrebe funkcije chdir(), premjestili smo se u jedan direktorij ispod i prikazan je taj određeni direktorij 'dom'.

Primjer 02:



Koristeći iste biblioteke zaglavlja, pokrenuli smo ovaj programski kod. Unutar funkcije main() ovog programa, koristili smo naredbu 'if' koristeći funkciju chdir() u njoj.

Ova funkcija će provjeravati postoji li “/user” u sustavu ili ne postavljanjem uvjeta “/user!=0”. Ako imenik ne postoji u trenutnom sustavu, poziv funkcije perror koristit će se za prikaz odgovarajuće poruke o pogrešci, tj. „korisnički imenik ne postoji. Koristili smo drugu naredbu 'if' koristeći funkciju chdir() unutar nje. Svrha korištenja funkcije chdir() ovdje je također ista kao što smo učinili u gornjoj if naredbi, a to je za provjeru postoji li direktorij ili ne pomoću uvjeta “/temp”!=0. Jedina razlika je korištenje novog naziva direktorija “/temp” umjesto “/user” kao što možete vidjeti na slici koda u nastavku.







Ako direktorij /temp ne postoji u sustavu, funkcija pogreške korištena u izjavi 'if' izbacit će poruku o pogrešci '/temp direktorij ne postoji' kao što je prikazano na slici ispod. Nakon upotrebe obje naredbe 'if', završavamo ovaj kod s C-ovom naredbom return 0. Sada je program gotov. Spremali smo naš C kod koristeći prečac Ctrl+S prije njegovog izvršenja.





Sada kada je datoteka spremljena u vašem sustavu, moramo prevesti C kod s 'gcc' kompajlerom koji smo već montirali na našoj strani. Koristeći ovu uputu, kreirali smo njegovu objektnu datoteku 'p2.out' koristeći opciju –o u uputama.





Nakon izvođenja stvorene objektne datoteke 'p2.out' sa znakovima './', saznali smo da oba direktorija navedena u stazi 'chdir' ne postoje u sustavu ili se pokazuje pogreška prikazana u ljusci to ispravno.



Zaključak

U okviru ovog današnjeg članka demonstrirali smo upotrebu funkcije chdir() od C u operativnom sustavu Kali Linux. Prvi primjer ilustrira kako se funkcija chdir() može koristiti za promjenu radnog direktorija, tj. prelazak iz jednog direktorija u drugi. Posljednji primjer C-a pokazuje kako možemo provjeriti postoji li trenutni radni direktorij naveden u stazi chdir() ili ne.