Systémové volanie chdir Linuxu v C

Systemove Volanie Chdir Linuxu V C



Zmeny v aktuálnom pracovnom adresári zariadenia sa vykonávajú pomocou metódy „CHDIR“. Za rôznych okolností sa môžete rozhodnúť zmeniť aktuálny pracovný priečinok vášho zariadenia. Alebo chcete spustiť skript C z priečinka namiesto vášho súčasného pracovného adresára. V dôsledku toho, ak chcete spustiť tento špecifický kód C, musíte upraviť svoj súčasný pracovný priečinok. Navyše, metóda „getcwd“ kódovacieho jazyka C sa môže použiť na rýchle určenie, kedy sa zmenil aktuálny pracovný priečinok. Teraz v tomto článku použijeme funkciu chdir() jazyka C na zmenu pracovného adresára.

Príklad 01:

Začnime s fungovaním funkcie chdir () jazyka C v operačnom systéme Linux. Aby ste to dosiahli, musíte sa uistiť, že kompilátor C je už pripojený na vašom konci. Vo väčšine prípadov máme tendenciu používať kompilátor C „gcc“ v našom operačnom systéme Kali Linux. Ak chcete začať s týmto príkladom, musíme mať súbor C s príponou „c“. Pomenovali sme ho p1.c a pokúsili sme sa ho otvoriť pomocou „nano“ editora Linuxu, ako je uvedené nižšie.







Keď sa váš súbor otvorí v editore, musíte v ňom začať kódovať. Spustili sme náš program C pridaním hlavných knižníc hlavičiek jazyka C, ktoré sú nevyhnutnosťou v každom programe C. Preto sa používajú knižnice hlavičiek stdio.h a unistd.h, aby sa zabezpečilo, že štandardný vstup a výstup môže prúdiť v rámci programu. Hlavička unistd.h bola použitá na využitie niektorých štandardných funkcií jazyka C, ktoré sú potrebné najmä pre tento príklad. Teraz sme spustili funkciu hlavného () ovládača C v tomto kóde, aby sa automaticky spúšťala pri spustení. Premenná poľa typu znakov „cesta“ bola definovaná s veľkosťou 100, pretože obsahuje iba 100 hodnôt.



Príkaz funkcie printf() sa použil na jednoduché vytlačenie aktuálneho priečinka pracovného adresára tohto súboru C pomocou funkcie „getcwd()“. Táto funkcia používa premennú poľa „cesta“ s veľkosťou 100 na získanie aktuálneho pracovného adresára v nej a jej odovzdanie príkazu funkcie printf() na zobrazenie. Teraz je čas použiť funkciu chdir (). Môžeme odovzdať ľubovoľný druh znakov, aby sme určili, či sa chceme v adresári pohybovať dopredu alebo dozadu v rámci toho istého adresára.



Vyskúšali sme teda znaky „..“ v príkaze funkcie chdir() na presun z aktuálneho pracovného adresára smerom dozadu, t. j. o jednu úroveň pod aktuálny pracovný adresár. Všimnite si, že práve teraz pracujeme v priečinku projektu nášho hlavného pracovného adresára „Linux“ systému Kali Linux. Teraz sme v adresári „Linux“ namiesto v adresári „projekt“ po použití funkcie „chdir“. Teraz sme znova vyskúšali príkaz funkcie „printf()“, aby sme zobrazili aktuálny pracovný adresár pomocou funkcie „getcwd“. Náš program končí príkazom return 0.





Po uložení tohto programu v jazyku C ho musíme skompilovať pomocou kompilátora „gcc“, ktorý sme už nakonfigurovali na našom konci. Pomocou tejto inštrukcie gcc sme vytvorili objektový súbor tohto súboru C s názvom „p1.out“ pomocou možnosti –o, ako je zobrazené nižšie.



Teraz, keď spustíte jeho objektový súbor vo vašom linuxovom termináli, najskôr získate pracovný adresár používaný programom pred použitím funkcie chdir(). Po použití funkcie chdir() sme sa presunuli do nižšie uvedeného adresára a zobrazí sa konkrétny adresár „home“.

Príklad 02:



Pomocou rovnakých knižníc hlavičiek sme spustili tento programový kód. V rámci funkcie main() tohto programu sme používali príkaz „if“ využívajúci v ňom funkciu chdir().

Táto funkcia bude kontrolovať, či „/user“ v systéme existuje alebo nie, nastavením podmienky „/user!=0“. Ak adresár v aktuálnom systéme neexistuje, volanie funkcie perror sa použije na zobrazenie príslušného chybového hlásenia, napríklad „adresár používateľa neexistuje. Používali sme ďalší príkaz „if“ pomocou funkcie chdir() v ňom. Účel použitia funkcie chdir() je tu tiež rovnaký ako vo vyššie uvedenom príkaze if, ktorý slúži na kontrolu, či adresár existuje alebo nie, pomocou podmienky „/temp“!=0. Jediným rozdielom je použitie nového názvu adresára „/temp“ namiesto „/user“, ako môžete vidieť na obrázku kódu nižšie.







Ak adresár /temp v systéme neexistuje, funkcia perror použitá v príkaze „if“ vyvolá chybové hlásenie „adresár /temp neexistuje“, ako je zobrazené na obrázku nižšie. Po použití oboch príkazov „if“ sme tento kód ukončili príkazom C's return 0. Teraz je program ukončený. Náš C kód sme pred jeho spustením uložili pomocou skratky Ctrl+S.





Teraz, keď je súbor uložený vo vašom systéme, musíme skompilovať kód C pomocou kompilátora „gcc“, ktorý sme už pripojili na náš koniec. Pomocou tejto inštrukcie sme vytvorili jej objektový súbor “p2.out” pomocou voľby –o v inštrukcii.





Po vykonaní vytvoreného objektového súboru „p2.out“ so znakmi „./“ sme sa dozvedeli, že obidva adresáre uvedené v ceste „chdir“ v systéme neexistujú alebo chyba zobrazená v shelli demonštruje to riadne.



Záver

V dnešnom článku sme demonštrovali použitie funkcie chdir() jazyka C v operačnom systéme Kali Linux. Hneď prvý príklad ilustruje, ako možno funkciu chdir() využiť na zmenu pracovného adresára, t.j. presun z jedného adresára do druhého. Posledný príklad C ukazuje, ako môžeme skontrolovať, či aktuálny pracovný adresár zadaný v ceste chdir() existuje alebo nie.