Linux chdir-systemanrop i C

Linux Chdir Systemanrop I C



Endringer i en enhets nåværende arbeidskatalog gjøres ved å bruke 'CHDIR'-metoden. I en rekke omstendigheter kan du bestemme deg for å endre enhetens nåværende arbeidsmappe. Eller du vil kjøre et C-skript fra en mappe i stedet for din nåværende arbeidskatalog. Følgelig, for å kjøre den spesifikke C-koden, må du endre din nåværende arbeidsmappe. I tillegg kan 'getcwd'-metoden til kodespråket C brukes for raskt å finne ut når den nåværende arbeidsmappen har endret seg. Nå skal vi bruke chdir()-funksjonen til C i denne artikkelen for å endre en arbeidskatalog.

Eksempel 01:

La oss starte med arbeidet med chdir()-funksjonen til C i Linux-operativsystemet. For dette må du sørge for at kompilatoren til C allerede er montert på din ende. I de fleste tilfeller har vi en tendens til å bruke 'gcc'-kompilatoren av C i Kali Linux-operativsystemet vårt. For å starte med dette eksemplet, må vi ha en C-fil med utvidelsen 'c'. Vi kalte den p1.c og prøvde å åpne den med 'nano'-editoren til Linux som presentert nedenfor.







Når filen din åpnes i redigeringsprogrammet, må du begynne å kode i den. Vi har startet C-programmet vårt ved å legge til hovedbibliotekene til C som er must-haves i ethvert C-program. Derfor brukes headerbibliotekene stdio.h og unistd.h for å sikre at standardinn- og utdata kan flyte i programmet. Unistd.h-overskriften har blitt brukt til å bruke noen standardfunksjoner til C som er påkrevd for dette eksemplet spesielt. Nå har vi startet hoved() driverfunksjonen til C i denne koden for å kjøre automatisk ved kjøring. Tegntype-arrayvariabelen 'bane' er definert med en størrelse på 100 fordi den lagrer bare 100 verdier.



Printf()-funksjonssetningen har blitt brukt til ganske enkelt å skrive ut den gjeldende arbeidskatalogmappen til denne C-filen ved å bruke 'getcwd()'-funksjonen. Denne funksjonen bruker 'path' array-variabelen med en størrelse på 100 for å få den gjeldende arbeidskatalogen i den og sende den til printf()-funksjonssetningen for visning. Nå er det på tide å bruke chdir()-funksjonen. Vi kan sende alle slags tegn for å spesifisere om vi ønsker å gå fremover i katalogen eller gå bakover i samme katalog.



Så vi har prøvd '..'-tegnene i chdir()-funksjonssetningen for å flytte fra gjeldende arbeidskatalog i bakoverretningen, dvs. ett nivå under gjeldende arbeidskatalog. Legg merke til at vi akkurat nå har jobbet i prosjektmappen til vår hoved 'Linux' arbeidskatalog i Kali Linux-systemet. Nå er vi i 'Linux'-katalogen i stedet for 'project'-katalogen etter å ha brukt 'chdir'-funksjonen. Nå prøvde vi funksjonssetningen 'printf()' igjen for å vise gjeldende arbeidskatalog ved å bruke 'getcwd'-funksjonen i den. Vårt program avsluttes med retur 0-setningen.





Etter å ha lagret dette C-programmet, må vi kompilere det ved å bruke 'gcc'-kompilatoren som vi allerede har konfigurert på slutten. Ved å bruke denne gcc-instruksjonen har vi laget en objektfil av denne C-filen kalt 'p1.out' ved å bruke -o-alternativet som vist nedenfor.



Nå, når du kjører objektfilen i Linux-terminalen, vil du først få arbeidskatalogen som brukes av programmet før bruk av chdir()-funksjonen. Etter bruk av chdir()-funksjonen, flyttet vi til den ene katalogen nedenfor og den spesielle katalogen 'hjem' vises.

Eksempel 02:



Ved å bruke de samme overskriftsbibliotekene har vi startet denne programkoden. Innenfor main()-funksjonen til dette programmet har vi brukt 'if'-setningen ved å bruke chdir()-funksjonen i den.

Denne funksjonen vil sjekke om '/bruker' eksisterer i systemet eller ikke ved å sette betingelsen '/bruker!=0'. Hvis katalogen ikke eksisterer i det gjeldende systemet, vil feilfunksjonskallet bli brukt til å vise den respektive feilmeldingen, dvs. 'brukerkatalogen eksisterer ikke. Vi har brukt en annen 'if'-setning ved å bruke chdir()-funksjonen i den. Hensikten med å bruke chdir()-funksjonen her er også den samme som vi gjorde i if-setningen ovenfor, som er for å sjekke om katalogen eksisterer eller ikke ved å bruke '/temp'!=0-betingelsen. Den eneste forskjellen er bruken av et nytt katalognavn '/temp' i stedet for '/user' som du kan se fra kodebildet nedenfor.







Hvis /temp-katalogen ikke eksisterer i systemet, vil perror-funksjonen som brukes i 'if'-setningen gi en feilmelding '/temp-katalogen eksisterer ikke' som vist fra bildet nedenfor. Etter bruk av begge 'if'-setningene, har vi avsluttet denne koden med Cs retur 0-setning. Nå er programmet over. Vi har lagret C-koden vår ved å bruke Ctrl+S-snarveien før den ble utført.





Nå som filen er lagret i systemet ditt, må vi kompilere C-koden med 'gcc'-kompilatoren vi allerede har montert på vår ende. Ved å bruke denne instruksjonen har vi laget objektfilen 'p2.out' ved å bruke -o-alternativet i instruksjonen.





Etter å ha kjørt den opprettede objektfilen 'p2.out' med './'-tegnene, lærte vi at begge katalogene som er nevnt i banen til 'chdir' ikke eksisterer i systemet, eller at feilen som vises på skallet har demonstrert det ordentlig.



Konklusjon

I denne artikkelen i dag har vi demonstrert bruken av chdir()-funksjonen til C i Kali Linux-operativsystemet. Det aller første eksemplet illustrerer hvordan chdir()-funksjonen kan brukes til å endre en arbeidskatalog, dvs. flytte fra en katalog til en annen. Det siste eksemplet på C viser hvordan vi kan sjekke om den gjeldende arbeidskatalogen spesifisert i banen til chdir() har eksistert eller ikke.