Linux chdir System Call C:ssä

Linux Chdir System Call C Ssa



Muutokset laitteen nykyiseen työhakemistoon tehdään 'CHDIR'-menetelmällä. Useissa olosuhteissa voit päättää muuttaa laitteesi nykyistä työkansiota. Tai haluat suorittaa C-komentosarjan kansiosta nykyisen työhakemistosi sijaan. Tämän vuoksi sinun on muokattava nykyistä työkansiota, jotta voit suorittaa kyseisen C-koodin. Lisäksi koodauskielen C 'getcwd'-menetelmää voidaan käyttää määrittämään nopeasti, milloin nykyinen työkansio on muuttunut. Nyt käytämme tässä artikkelissa C:n chdir()-funktiota työhakemiston muuttamiseksi.

Esimerkki 01:

Aloitetaan C:n chdir()-funktion toiminnasta Linux-käyttöjärjestelmässä. Tätä varten sinun on varmistettava, että C-kääntäjä on jo asennettu päähän. Useimmissa tapauksissa meillä on tapana käyttää C:n 'gcc'-kääntäjää Kali Linux -käyttöjärjestelmässämme. Aloitaksesi tästä esimerkistä, meillä on oltava C-tiedosto, jonka laajennus on 'c'. Nimesimme sen p1.c:ksi ja yritimme avata sen Linuxin 'nano'-editorilla alla esitetyllä tavalla.







Kun tiedostosi avataan editorissa, sinun on aloitettava sen koodaus. Olemme aloittaneet C-ohjelmamme lisäämällä C:n pääotsikkokirjastot, jotka ovat pakollisia jokaisessa C-ohjelmassa. Siksi stdio.h- ja unistd.h-otsikkokirjastoja käytetään varmistamaan, että vakiotulo ja -tulos voivat virrata ohjelman sisällä. Unistd.h-otsikkoa on käytetty hyödyntämään joitain C:n vakiotoimintoja, joita tarvitaan erityisesti tässä esimerkissä. Nyt olemme käynnistäneet C:n main()-ajuritoiminnon tässä koodissa toimimaan automaattisesti suorituksen aikana. Merkkityyppinen taulukkomuuttuja 'path' on määritetty kooksi 100, koska se tallentaa vain 100 arvoa.



Printf()-funktiokäskyä on käytetty yksinkertaisesti tulostamaan tämän C-tiedoston nykyinen työhakemistokansio käyttämällä “getcwd()”-funktiota. Tämä funktio käyttää 'polku'-taulukkomuuttujaa, jonka koko on 100, saadakseen nykyisen työhakemiston siihen ja välittääkseen sen printf()-funktiokäskyyn näyttöä varten. Nyt on aika käyttää chdir()-funktiota. Voimme antaa mitä tahansa merkkejä määrittääksemme, haluammeko siirtyä hakemistossa eteenpäin vai taaksepäin samassa hakemistossa.



Joten olemme yrittäneet chdir()-funktion käskyn '..'-merkkejä siirtyä nykyisestä työhakemistosta taaksepäin, eli yhden tason nykyisen työhakemiston alapuolelle. Huomaa, että tällä hetkellä olemme työskennelleet Kali Linux -järjestelmän päätyöhakemistomme 'Linux' projektikansiossa. Nyt olemme 'Linux'-hakemistossa 'projekti'-hakemiston sijaan 'chdir'-toiminnon käytön jälkeen. Nyt yritimme vielä kerran 'printf()'-funktiota näyttää nykyinen työhakemisto käyttämällä 'getcwd'-funktiota siinä. Ohjelmamme päättyy return 0 -lauseeseen.





Kun tämä C-ohjelma on tallennettu, meidän on käännettävä se 'gcc'-kääntäjällä, jonka olemme jo määrittäneet. Käyttämällä tätä gcc-ohjetta olemme luoneet tästä C-tiedostosta objektitiedoston nimeltä 'p1.out' käyttämällä -o-vaihtoehtoa, kuten alla näytetään.



Nyt kun suoritat sen objektitiedoston Linux-päätteessäsi, saat ensin ohjelman käyttämän työhakemiston ennen chdir()-funktion käyttöä. Toiminnon chdir() käytön jälkeen siirryimme yhteen alla olevaan hakemistoon ja tuo tietty hakemisto 'home' tulee näkyviin.

Esimerkki 02:



Olemme käynnistäneet tämän ohjelmakoodin käyttämällä samoja otsikkokirjastoja. Tämän ohjelman main()-funktiossa olemme käyttäneet 'if'-lausetta hyödyntäen siinä chdir()-funktiota.

Tämä toiminto tarkistaa, onko '/user' järjestelmässä vai ei asettamalla ehdon '/user!=0'. Jos hakemistoa ei ole olemassa nykyisessä järjestelmässä, virhefunktiokutsua käytetään vastaavan virheilmoituksen näyttämiseen, eli 'käyttäjähakemistoa ei ole olemassa. Olemme käyttäneet toista 'if'-lausetta käyttämällä sen sisällä olevaa chdir()-funktiota. Myös chdir()-funktion käyttötarkoitus on tässä sama kuin yllä olevassa if-käskyssä, jonka tarkoituksena on tarkistaa, onko hakemisto olemassa vai ei, käyttämällä '/temp'!=0-ehtoa. Ainoa ero on uuden hakemistonimen '/temp' käyttö '/user' sijaan, kuten näet alla olevasta koodikuvasta.







Jos järjestelmässä ei ole /temp-hakemistoa, 'if'-käskyssä käytetty virhetoiminto aiheuttaisi virheilmoituksen '/temp-hakemistoa ei ole olemassa', kuten alla olevasta kuvasta näkyy. Molempien 'if'-lausekkeiden käytön jälkeen olemme päättäneet tämän koodin C:n return 0 -lauseeseen. Nyt ohjelma on ohi. Olemme tallentaneet C-koodimme Ctrl+S-pikanäppäimellä ennen sen suorittamista.





Nyt kun tiedosto on tallennettu järjestelmääsi, meidän on käännettävä C-koodi 'gcc'-kääntäjällä, jonka olemme jo asentaneet loppuun. Tämän ohjeen avulla olemme luoneet sen objektitiedoston 'p2.out' käyttämällä ohjeen -o-vaihtoehtoa.





Suoritettuamme luodun objektitiedoston 'p2.out' './'-merkeillä, opimme, että kumpaakaan polussa 'chdir' mainittuja hakemistoja ei ole järjestelmässä tai että komentotulkissa näkyvä virhe on osoittanut sen kunnolla.



Johtopäätös

Tämän päivän artikkelissa olemme osoittaneet C:n chdir()-funktion käytön Kali Linux -käyttöjärjestelmässä. Aivan ensimmäinen esimerkki havainnollistaa kuinka chdir()-funktiota voidaan käyttää työhakemiston vaihtamiseen eli siirtymiseen hakemistosta toiseen. Viimeinen C:n esimerkki osoittaa, kuinka voimme tarkistaa, onko chdir()-polussa määritetty nykyinen työhakemisto ollut olemassa vai ei.