Linux chdir Systemkald i C

Linux Chdir Systemkald I C



Ændringer i en enheds nuværende arbejdsmappe foretages ved hjælp af 'CHDIR'-metoden. Under forskellige omstændigheder kan du beslutte at ændre din enheds nuværende arbejdsmappe. Eller du vil køre et C-script fra en mappe i stedet for din nuværende arbejdsmappe. For at køre den specifikke C-kode skal du derfor ændre din nuværende arbejdsmappe. Derudover kan 'getcwd'-metoden for kodningssproget C bruges til hurtigt at bestemme, hvornår den nuværende arbejdsmappe er ændret. Nu vil vi bruge chdir()-funktionen af ​​C i denne artikel til at ændre en arbejdsmappe.

Eksempel 01:

Lad os starte med arbejdet med chdir()-funktionen af ​​C i Linux-operativsystemet. Til dette skal du sikre dig, at compileren af ​​C allerede er monteret i din ende. I de fleste tilfælde har vi en tendens til at bruge 'gcc'-kompileren af ​​C i vores Kali Linux-operativsystem. For at starte med dette eksempel skal vi have en C-fil med filtypen 'c'. Vi navngav den p1.c og forsøgte at åbne den med 'nano' editoren af ​​Linux som præsenteret nedenfor.







Når din fil bliver åbnet i editoren, skal du begynde at kode i den. Vi har startet vores C-program ved at tilføje de vigtigste header-biblioteker i C, som er must-haves i ethvert C-program. Derfor bruges headerbibliotekerne stdio.h og unistd.h til at sikre, at standard input og output kan flyde i programmet. Unistd.h-headeren er blevet brugt til at gøre brug af nogle standardfunktioner i C, som er nødvendige for dette eksempel. Nu har vi startet hoved()-driverfunktionen i C i denne kode til at køre automatisk ved udførelse. Tegntype-arrayvariablen 'sti' er blevet defineret med en størrelse på 100, fordi den kun gemmer 100 værdier.



Printf() funktionssætningen er blevet brugt til blot at udskrive den aktuelle arbejdsmappe i denne C-fil ved hjælp af 'getcwd()'-funktionen. Denne funktion bruger 'path' array-variablen med en størrelse på 100 til at hente den aktuelle arbejdsmappe i den og sende den til printf() funktionssætningen til visning. Nu er det tid til at bruge chdir()-funktionen. Vi kan sende en hvilken som helst slags tegn for at specificere, om vi vil bevæge os fremad i biblioteket eller bevæge os i baglæns retning inden for samme bibliotek.



Så vi har prøvet '..'-tegnene i chdir()-funktionssætningen for at flytte fra den aktuelle arbejdsmappe i baglæns retning, dvs. et niveau under den aktuelle arbejdsmappe. Bemærk, at vi lige nu har arbejdet i projektmappen i vores primære 'Linux'-arbejdsmappe i Kali Linux-systemet. Nu er vi ved 'Linux'-mappen i stedet for 'project'-mappen efter at have brugt 'chdir'-funktionen. Nu prøvede vi 'printf()' funktionssætningen igen for at vise den aktuelle arbejdsmappe ved hjælp af 'getcwd'-funktionen i den. Vores program slutter med retur 0-opgørelsen.





Efter at have gemt dette C-program, skal vi kompilere det ved hjælp af 'gcc'-kompileren, som vi allerede har konfigureret i vores ende. Ved at bruge denne gcc-instruktion har vi oprettet en objektfil af denne C-fil med navnet 'p1.out' ved at bruge -o-indstillingen som vist nedenfor.



Nu, når du kører dens objektfil i din Linux-terminal, får du først den arbejdsmappe, der bruges af programmet før brugen af ​​chdir()-funktionen. Efter brugen af ​​chdir()-funktionen flyttede vi til den ene mappe nedenfor, og den pågældende mappe 'home' vises.

Eksempel 02:



Ved at bruge de samme header-biblioteker har vi startet denne programkode. Inden for main()-funktionen i dette program har vi brugt 'if'-sætningen ved at bruge chdir()-funktionen i den.

Denne funktion vil kontrollere, om '/bruger' findes i systemet eller ej ved at indstille betingelsen '/bruger!=0'. Hvis biblioteket ikke eksisterer i det aktuelle system, vil fejlfunktionskaldet blive brugt til at vise den respektive fejlmeddelelse, dvs. 'brugerbibliotek eksisterer ikke. Vi har brugt en anden 'if'-sætning ved at bruge chdir()-funktionen i den. Formålet med at bruge chdir()-funktionen her er også det samme som vi gjorde i ovenstående if-sætning, som er til at kontrollere, om mappen eksisterer eller ej ved at bruge '/temp'!=0-betingelsen. Den eneste forskel er brugen af ​​et nyt mappenavn '/temp' i stedet for '/bruger', som du kan se fra kodebilledet nedenfor.







Hvis mappen /temp ikke eksisterer i systemet, vil perror-funktionen, der bruges i 'if'-sætningen, sende en fejlmeddelelse '/temp-mappen findes ikke', som vist på billedet nedenfor. Efter brugen af ​​begge 'hvis'-sætninger, har vi afsluttet denne kode med C's return 0-sætning. Nu er programmet slut. Vi har gemt vores C-kode ved hjælp af Ctrl+S-genvejen før dens udførelse.





Nu hvor filen er blevet gemt i dit system, skal vi kompilere C-koden med 'gcc'-kompileren, vi allerede har monteret i vores ende. Ved at bruge denne instruktion har vi oprettet dens objektfil 'p2.out' ved at bruge -o muligheden i instruktionen.





Efter at have udført den oprettede objektfil 'p2.out' med './'-tegnene, erfarede vi, at begge de mapper, der er nævnt i stien til 'chdir' ikke eksisterer i systemet, eller at fejlen, der vises på skallen, har demonstreret det ordentligt.



Konklusion

I denne artikel i dag har vi demonstreret brugen af ​​chdir()-funktionen af ​​C i Kali Linux-operativsystemet. Det allerførste eksempel illustrerer, hvordan chdir()-funktionen kan bruges til at ændre en arbejdsmappe, dvs. flytte fra en mappe til en anden. Det sidste eksempel på C viser, hvordan vi kan kontrollere, om den aktuelle arbejdsmappe, der er angivet i stien til chdir() har eksisteret eller ej.