Wywołanie systemowe chdir systemu Linux w C

Wywolanie Systemowe Chdir Systemu Linux W C



Zmiany w bieżącym katalogu roboczym urządzenia są dokonywane przy użyciu metody „CHDIR”. W różnych okolicznościach możesz zdecydować się na zmianę obecnego folderu roboczego urządzenia. Lub chcesz uruchomić skrypt C z folderu zamiast z obecnego katalogu roboczego. W związku z tym, aby uruchomić ten konkretny kod C, musisz zmodyfikować obecny folder roboczy. Dodatkowo metoda „getcwd” języka kodowania C może być wykorzystana do szybkiego określenia, kiedy zmienił się obecny folder roboczy. Teraz będziemy używać funkcji chdir() z C w tym artykule, aby zmienić katalog roboczy.

Przykład 01:

Zacznijmy od działania funkcji chdir() języka C w systemie operacyjnym Linux. W tym celu musisz mieć pewność, że kompilator C jest już zamontowany na Twoim końcu. W większości przypadków używamy kompilatora C „gcc” w naszym systemie operacyjnym Kali Linux. Aby zacząć od tego przykładu, musimy mieć plik C z rozszerzeniem „c”. Nazwaliśmy go p1.c i próbowaliśmy otworzyć go za pomocą edytora „nano” systemu Linux, jak pokazano poniżej.







Kiedy twój plik zostanie otwarty w edytorze, musisz zacząć w nim kodować. Rozpoczęliśmy nasz program w C od dodania głównych bibliotek nagłówkowych C, które są niezbędne w każdym programie C. Dlatego też biblioteki nagłówkowe stdio.hi unistd.h są używane, aby upewnić się, że standardowe wejście i wyjście może przepływać w programie. Nagłówek unistd.h został użyty do wykorzystania niektórych standardowych funkcji języka C, które są wymagane szczególnie w tym przykładzie. Teraz uruchomiliśmy funkcję sterownika main() w C w tym kodzie, aby działała automatycznie po wykonaniu. Zmienna tablicowa typu znakowego „path” ma rozmiar 100, ponieważ przechowuje tylko 100 wartości.



Instrukcja funkcji printf() została użyta do prostego wydrukowania bieżącego folderu katalogu roboczego tego pliku C za pomocą funkcji „getcwd()”. Ta funkcja używa zmiennej tablicowej „path” o rozmiarze 100, aby pobrać w niej bieżący katalog roboczy i przekazać go do instrukcji funkcyjnej printf() w celu wyświetlenia. Teraz nadszedł czas na użycie funkcji chdir(). Możemy przekazać dowolne znaki, aby określić, czy chcemy poruszać się w tym samym katalogu do przodu, czy do tyłu.



Tak więc spróbowaliśmy użyć znaków „..” w instrukcji funkcji chdir(), aby przejść z bieżącego katalogu roboczego w kierunku wstecznym, tj. o jeden poziom poniżej bieżącego katalogu roboczego. Zauważ, że teraz pracujemy w folderze projektu naszego głównego katalogu roboczego „Linux” systemu Kali Linux. Teraz jesteśmy w katalogu „Linux” zamiast w katalogu „projekt” po użyciu funkcji „chdir”. Teraz spróbowaliśmy ponownie użyć instrukcji funkcji „printf()”, aby wyświetlić bieżący katalog roboczy, używając w nim funkcji „getcwd”. Nasz program kończy się instrukcją return 0.





Po zapisaniu tego programu w C musimy go skompilować za pomocą kompilatora „gcc”, który już skonfigurowaliśmy na naszym końcu. Korzystając z tej instrukcji gcc, utworzyliśmy plik obiektowy tego pliku C o nazwie „p1.out” za pomocą opcji –o, jak pokazano poniżej.



Teraz, gdy uruchomisz jego plik obiektowy w terminalu Linux, najpierw otrzymasz katalog roboczy używany przez program przed użyciem funkcji chdir(). Po użyciu funkcji chdir() przenieśliśmy się do jednego katalogu poniżej i ten konkretny katalog „home” jest wyświetlany.

Przykład 02:



Używając tych samych bibliotek nagłówków, uruchomiliśmy ten kod programu. W funkcji main() tego programu używaliśmy instrukcji „if”, wykorzystując w niej funkcję chdir().

Ta funkcja będzie sprawdzać, czy „/użytkownik” istnieje w systemie, czy nie poprzez ustawienie warunku „/użytkownik!=0”. Jeśli katalog nie istnieje w bieżącym systemie, wywołanie funkcji perror zostanie użyte do wyświetlenia odpowiedniego komunikatu o błędzie, np. „katalog użytkownika nie istnieje. Korzystaliśmy z innej instrukcji „if”, używając w niej funkcji chdir(). Cel użycia tutaj funkcji chdir() jest taki sam, jak w przypadku powyższej instrukcji if, która służy do sprawdzenia, czy katalog istnieje, czy nie, przy użyciu warunku „/temp”!=0. Jedyną różnicą jest użycie nowej nazwy katalogu „/temp” zamiast „/user”, jak widać na poniższym obrazie kodu.







Jeśli katalog / temp nie istnieje w systemie, funkcja perror użyta w instrukcji „if” spowoduje wyświetlenie komunikatu o błędzie „katalog / temp nie istnieje”, jak pokazano na poniższym obrazku. Po użyciu obu instrukcji „if” kończyliśmy ten kod instrukcją return 0 języka C. Teraz program się skończył. Zapisaliśmy nasz kod C za pomocą skrótu Ctrl+S przed jego wykonaniem.





Teraz, gdy plik został zapisany w twoim systemie, musimy skompilować kod C za pomocą kompilatora „gcc”, który już zamontowaliśmy na naszym końcu. Korzystając z tej instrukcji, stworzyliśmy jej plik obiektowy „p2.out” za pomocą opcji –o w instrukcji.





Po wykonaniu utworzonego pliku obiektowego „p2.out” ze znakami „./” dowiedzieliśmy się, że oba katalogi wymienione w ścieżce „chdir” nie istnieją w systemie lub wykazał błąd wyświetlany w powłoce to właściwie.



Wniosek

W dzisiejszym artykule zademonstrowaliśmy użycie funkcji chdir() języka C w systemie operacyjnym Kali Linux. Pierwszy przykład ilustruje, jak można wykorzystać funkcję chdir() do zmiany katalogu roboczego, tj. przechodzenia z jednego katalogu do drugiego. Ostatni przykład C pokazuje, jak możemy sprawdzić, czy bieżący katalog roboczy określony w ścieżce chdir() istnieje, czy nie.