Systémové volání chdir Linuxu v C

Systemove Volani Chdir Linuxu V C



Změny v aktuálním pracovním adresáři zařízení se provádějí pomocí metody „CHDIR“. Za různých okolností se můžete rozhodnout změnit současnou pracovní složku vašeho zařízení. Nebo chcete spustit skript C ze složky namísto vašeho současného pracovního adresáře. V důsledku toho, abyste mohli spustit tento specifický kód C, musíte upravit svou aktuální pracovní složku. Navíc lze použít metodu „getcwd“ kódovacího jazyka C k rychlému určení, kdy se současná pracovní složka změnila. Nyní použijeme funkci chdir() jazyka C v tomto článku ke změně pracovního adresáře.

Příklad 01:

Začněme s fungováním funkce chdir() jazyka C v operačním systému Linux. Za tímto účelem se musíte ujistit, že kompilátor C je již připojen na vašem konci. Ve většině případů máme tendenci používat „gcc“ kompilátor C v našem operačním systému Kali Linux. Chcete-li začít s tímto příkladem, musíme mít soubor C s příponou „c“. Pojmenovali jsme jej p1.c a pokusili jsme se jej otevřít pomocí „nano“ editoru Linuxu, jak je uvedeno níže.







Když se váš soubor otevře v editoru, musíte v něm začít kódovat. Spustili jsme náš program v jazyce C přidáním hlavních knihoven záhlaví jazyka C, které jsou nezbytností v každém programu v jazyce C. Proto se používají knihovny hlaviček stdio.h a unistd.h, aby bylo zajištěno, že standardní vstup a výstup mohou proudit v rámci programu. Záhlaví unistd.h bylo použito pro použití některých standardních funkcí jazyka C, které jsou vyžadovány zejména pro tento příklad. Nyní jsme spustili funkci main() ovladače C v tomto kódu, aby se spouštěla ​​automaticky při spuštění. Proměnná pole typu znaků „cesta“ byla definována s velikostí 100, protože ukládá pouze 100 hodnot.



Příkaz funkce printf() byl použit k jednoduchému vytištění aktuální složky pracovního adresáře tohoto souboru C pomocí funkce „getcwd()“. Tato funkce používá proměnnou pole „cesta“ o velikosti 100 k získání aktuálního pracovního adresáře v něm a jeho předání příkazu funkce printf() k zobrazení. Nyní je čas použít funkci chdir(). Můžeme předat jakýkoli druh znaků, abychom určili, zda se chceme v adresáři pohybovat vpřed nebo vzad ve stejném adresáři.



Vyzkoušeli jsme tedy znaky „..“ v příkazu funkce chdir() pro přesun z aktuálního pracovního adresáře zpět, tj. o jednu úroveň pod aktuální pracovní adresář. Všimněte si, že právě teď pracujeme ve složce projektu našeho hlavního pracovního adresáře „Linux“ systému Kali Linux. Nyní jsme po použití funkce 'chdir' v adresáři 'Linux' místo v adresáři 'project'. Nyní jsme znovu zkusili příkaz funkce „printf()“, abychom zobrazili aktuální pracovní adresář pomocí funkce „getcwd“ v něm. Náš program končí příkazem return 0.





Po uložení tohoto programu v jazyce C jej musíme zkompilovat pomocí kompilátoru „gcc“, který jsme již nakonfigurovali na našem konci. Pomocí této instrukce gcc jsme vytvořili objektový soubor tohoto souboru C s názvem „p1.out“ pomocí volby –o, jak je zobrazeno níže.



Nyní, když spustíte jeho objektový soubor ve vašem linuxovém terminálu, nejprve získáte pracovní adresář používaný programem před použitím funkce chdir(). Po použití funkce chdir() jsme se přesunuli do jednoho adresáře níže a zobrazí se tento konkrétní adresář „home“.

Příklad 02:



Pomocí stejných knihoven záhlaví jsme spustili tento programový kód. V rámci funkce main() tohoto programu jsme používali příkaz „if“ využívající v něm funkci chdir().

Tato funkce bude kontrolovat, zda „/user“ v systému existuje nebo ne, nastavením podmínky „/user!=0“. Pokud adresář v aktuálním systému neexistuje, bude k zobrazení příslušné chybové zprávy použito volání funkce perror, tj. „uživatelský adresář neexistuje. Použili jsme další příkaz „if“ pomocí funkce chdir() v něm. Účel použití funkce chdir() je zde také stejný jako ve výše uvedeném příkazu if, který slouží ke kontrole, zda adresář existuje nebo ne, pomocí podmínky „/temp“!=0. Jediným rozdílem je použití nového názvu adresáře „/temp“ místo „/user“, jak můžete vidět z obrázku kódu níže.







Pokud adresář /temp v systému neexistuje, funkce perror použitá v příkazu „if“ vyvolá chybovou zprávu „adresář /temp neexistuje“, jak je zobrazeno na obrázku níže. Po použití obou příkazů „if“ jsme tento kód ukončili příkazem C's return 0. Nyní je program u konce. Náš C kód jsme před jeho spuštěním uložili pomocí zkratky Ctrl+S.





Nyní, když je soubor uložen ve vašem systému, musíme zkompilovat kód C pomocí kompilátoru „gcc“, který jsme již připojili na náš konec. Pomocí této instrukce jsme vytvořili její objektový soubor „p2.out“ pomocí volby –o v instrukci.





Po spuštění vytvořeného objektového souboru „p2.out“ se znaky „./“ jsme se dozvěděli, že oba adresáře uvedené v cestě „chdir“ v systému neexistují nebo chyba zobrazená v shellu demonstruje to správně.



Závěr

V dnešním článku jsme demonstrovali použití funkce chdir() jazyka C v operačním systému Kali Linux. Hned první příklad ukazuje, jak lze využít funkci chdir() ke změně pracovního adresáře, tj. přesunout se z jednoho adresáře do druhého. Poslední příklad C ukazuje, jak můžeme zkontrolovat, zda aktuální pracovní adresář zadaný v cestě chdir() existuje nebo ne.