Linux chdir sistemos skambutis C

Linux Chdir Sistemos Skambutis C



Dabartinio įrenginio darbo katalogo pakeitimai atliekami naudojant „CHDIR“ metodą. Įvairiomis aplinkybėmis galite nuspręsti pakeisti esamą įrenginio darbo aplanką. Arba norite paleisti C scenarijų iš aplanko, o ne iš dabartinio darbo katalogo. Todėl, norėdami paleisti tą konkretų C kodą, turite pakeisti esamą darbo aplanką. Be to, kodavimo kalbos C metodas „getcwd“ gali būti naudojamas norint greitai nustatyti, kada pasikeitė esamas darbo aplankas. Dabar šiame straipsnyje naudosime C funkciją chdir () norėdami pakeisti darbinį katalogą.

01 pavyzdys:

Pradėkime nuo C funkcijos chdir () veikimo Linux operacinėje sistemoje. Norėdami tai padaryti, turite įsitikinti, kad C kompiliatorius jau yra jūsų gale. Daugeliu atvejų savo Kali Linux operacinėje sistemoje esame linkę naudoti C kompiliatorių „gcc“. Norėdami pradėti nuo šio pavyzdžio, turime turėti C failą su plėtiniu 'c'. Pavadinome jį p1.c ir bandėme atidaryti naudodami „Linux“ „nano“ redaktorių, kaip parodyta toliau.







Kai failas atidaromas redaktoriuje, turite pradėti jame koduoti. Mes pradėjome savo C programą įtraukdami pagrindines C antraščių bibliotekas, kurias būtina turėti bet kurioje C programoje. Todėl stdio.h ir unistd.h antraščių bibliotekos naudojamos siekiant užtikrinti, kad standartinė įvestis ir išvestis galėtų tekėti programoje. Unistd.h antraštė buvo naudojama norint pasinaudoti kai kuriomis standartinėmis C funkcijomis, kurios ypač reikalingos šiame pavyzdyje. Dabar mes pradėjome pagrindinę () C tvarkyklės funkciją šiame kode, kad ji būtų vykdoma automatiškai. Simbolių tipo masyvo kintamasis „path“ buvo apibrėžtas 100 dydžiu, nes jame saugoma tik 100 reikšmių.



Funkcijos printf () sakinys buvo naudojamas tiesiog išspausdinti dabartinį šio C failo darbo katalogo aplanką naudojant funkciją „getcwd ()“. Ši funkcija naudoja „path“ masyvo kintamąjį, kurio dydis yra 100, kad jame būtų pateiktas dabartinis darbo katalogas ir perduotų jį funkcijos printf() sakiniui, kad būtų rodomas. Dabar atėjo laikas naudoti funkciją chdir (). Galime perduoti bet kokius simbolius, kad nurodytume, ar norime judėti pirmyn kataloge, ar judėti atgal tame pačiame kataloge.



Taigi, mes bandėme „..“ simbolius funkcijos sakinyje chdir () perkelti iš dabartinio darbo katalogo atgal, ty vienu lygiu žemiau dabartinio darbo katalogo. Atkreipkite dėmesį, kad šiuo metu mes dirbame savo pagrindinio Kali Linux sistemos „Linux“ darbo katalogo projekto aplanke. Dabar mes esame „Linux“ kataloge, o ne „projekto“ kataloge, naudodami funkciją „chdir“. Dabar dar kartą išbandėme funkcijos „printf ()“ teiginį, kad būtų rodomas dabartinis darbo katalogas, naudojant jame esančią funkciją „getcwd“. Mūsų programa baigiasi teiginiu return 0.





Išsaugoję šią C programą, turime ją sukompiliuoti naudodami „gcc“ kompiliatorių, kurį jau sukonfigūravome. Naudodamiesi šia gcc instrukcija, mes sukūrėme šio C failo objekto failą pavadinimu „p1.out“, naudodami –o parinktį, kaip parodyta toliau.



Dabar, kai paleisite objekto failą „Linux“ terminale, pirmiausia gausite programos naudojamą darbo katalogą prieš naudodami funkciją chdir (). Panaudoję funkciją chdir() persikėlėme į vieną žemiau esantį katalogą ir rodomas tas konkretus katalogas „home“.

02 pavyzdys:



Naudodami tas pačias antraščių bibliotekas, pradėjome šį programos kodą. Šios programos pagrindinėje () funkcijoje mes naudojome „if“ teiginį, naudodami chdir () funkciją.

Ši funkcija patikrins, ar sistemoje yra „/user“, ar ne, nustatydama sąlygą „/user!=0“. Jei katalogo dabartinėje sistemoje nėra, klaidos funkcijos iškvietimas bus naudojamas atitinkamam klaidos pranešimui parodyti, ty „vartotojo katalogas neegzistuoja. Naudojome kitą „if“ teiginį naudodami chdir () funkciją. Funkcijos chdir() naudojimo tikslas taip pat yra toks pat, kaip ir aukščiau esančiame if sakinyje, kuris skirtas patikrinti, ar katalogas egzistuoja, ar ne, naudojant sąlygą „/temp“!=0. Vienintelis skirtumas yra naujo katalogo pavadinimo „/temp“ naudojimas vietoj „/user“, kaip matote iš toliau pateikto kodo paveikslėlio.







Jei sistemoje nėra katalogo /temp, sakinyje „if“ naudojama klaidos funkcija parodys klaidos pranešimą „/temp katalogas neegzistuoja“, kaip parodyta toliau pateiktame paveikslėlyje. Panaudoję abu „if“ teiginius, šį kodą baigėme C grąžinimo 0 teiginiu. Dabar programa baigta. Prieš vykdydami C kodą išsaugojome naudodami spartųjį klavišą Ctrl + S.





Dabar, kai failas buvo išsaugotas jūsų sistemoje, turime sukompiliuoti C kodą naudodami „gcc“ kompiliatorių, kurį jau įdiegėme. Naudodamiesi šia instrukcija, mes sukūrėme jos objekto failą „p2.out“, naudodami instrukcijos parinktį –o.





Vykdę sukurtą objekto failą „p2.out“ su „./“ simboliais, sužinojome, kad sistemoje nėra abiejų „chdir“ kelyje nurodytų katalogų arba buvo parodyta apvalkale rodoma klaida. tai tinkamai.



Išvada

Šiame šiandieniniame straipsnyje mes parodėme C funkcijos chdir() naudojimą Kali Linux operacinėje sistemoje. Pats pirmasis pavyzdys iliustruoja, kaip funkcija chdir () gali būti naudojama norint pakeisti darbinį katalogą, ty perkelti iš vieno katalogo į kitą. Paskutinis C pavyzdys parodo, kaip galime patikrinti, ar esamas darbo katalogas, nurodytas chdir() kelyje, egzistuoja, ar ne.