Kiedy naiwny użytkownik zacznie uczyć się o systemie operacyjnym, on/ona dowiaduje się o systemie plików tego systemu. Katalog jest zasadniczo specjalnym typem pliku, który zachowuje się jak baza danych dowolnego systemu operacyjnego, takiego jak Windows, Linux, UNIX itp. System plików mediów określa, w jaki sposób pliki są kategoryzowane i dostępne. Podobnie wszystkie te informacje są przechowywane w katalogu, w tym fizyczna lokalizacja pliku, nazwa, data i znacznik czasu, uprawnienia i inne wymagane szczegóły.
Funkcja POSIX w systemie Linux jest powszechnie znana z odczytu wszystkich plików i folderów z określonego konkretnego katalogu. W tym samouczku przyjrzymy się użyciu funkcji ReadDir w Kali Linux.
Musimy użyć „Dyrent.H ”plik nagłówka. Przed przeczytaniem danych z konkretnego katalogu musisz je otworzyć. Użyj funkcji OpenDir (), aby uzyskać dostęp do katalogu. Jest napisane w następujący sposób w pliku nagłówka „Dirent.H". Ale mówimy o funkcji ReadDir () tutaj. Aby uzyskać dostęp do katalogu, który zamierzamy przeczytać, musimy skorzystać z funkcji OpenDir (). Plik nagłówka „Dyrent.H ”zawiera definicje obu funkcji. Przed kontynuowaniem musimy zapoznać się z składnią funkcji ReadDir (). Poniżej przedstawiono składnię i wymagane pliki nagłówka:
Przykład 1:
Użyj VIM lub dowolnego innego edytora swoich preferencji, aby zbudować lub otworzyć plik. W tym przypadku Readdirfile.C jest używany jako nazwa pliku, a edytor vim jest stosowany. Kiedy wpisujemy to polecenie i naciśnij przycisk Enter na klawiaturze, edytor VIM otwiera plik. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Aby otworzyć tryb wstawki w VIM, naciśnij klawisz „Escape” na klawiaturze, a następnie naciśnij przycisk „I”, aby wyświetlić tryb wstawki. Następnie, jak pokazano na poniższym ekranie, zacznij zapisywać kod w pliku. Po prostu dołączamy pliki nagłówka, definiujemy i nieokreślić źródła POSIX w pierwszych sześciu wierszach kodu.
Główna funkcja zaczyna konstruować wskaźnik DINT o nazwie Directory, który jest wymagany, ponieważ metoda opendir () zwraca wskaźnik DIR. Ta funkcja wymaga ścieżki ciągu do katalogu. W poniższym wierszu definiujemy wpisowy punkt bezpośredniej struktury, który jest później wykorzystywany w funkcji ReadDir (), aby wyświetlić nazwę katalogu w określonym bieżącym katalogu. Jak widać w instrukcji IF, zastosowaliśmy funkcję OpenDir, która przyjmuje znak „/” i wskazuje na katalog główny bieżącego katalogu.
Sprawdzamy, czy katalog główny nie jest zerowy w instrukcji warunkowej. Jeśli tak, wyświetlamy błąd za pomocą funkcji Perror. Wiersz „zawartość korzenia” jest drukowana w instrukcji else. Następnie, używając pętli w While w funkcji ReadDIR, sprawdź, czy nie zwraca NULL, wskazując, że w określonym katalogu lub folderze nie ma więcej katalogów. Nazwa katalogu jest drukowana za pomocą wpisu zmiennej wskaźnika wewnątrz bloku while pętli. Po zrobieniu tego, co chcesz z katalogiem, możesz użyć funkcji Posx Clowelir () poza blokiem pętli, aby zamknąć otwarty katalog. Najpierw zapiszmy następujący kod:
Wpisz polecenie, jak pokazano na poniższym obrazie, aby skompilować kod C z kompilatorem GCC i zapisz wyjście do wymaganego pliku wyjściowego lub obiektowego. Jeśli nie wpiszesz polecenia po flagie -O, kompilator zapisuje Twój plik jako „a.domyślnie „plik”. Jeśli zdarzenie, że plik wyjściowy istnieje już w katalogu, to polecenie go zastąpi. Zbudowaliśmy „Readdirfile.Plik wyjściowy ”w naszym scenariuszu. Jeśli kompiluje się poprawnie bez błędów lub ostrzeżeń w wierszu poleceń, po prostu uruchom go. W przeciwnym razie napraw kod i ponownie skompiluj go na powładzie. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Aby uruchomić plik wyjściowy, użyj następującego polecenia, które wyświetla wyjście pliku na ekranie lub inne polecenia zawarte w kodzie. Metoda ReadDir w naszym kodzie wyświetla nazwy katalogów folderu głównego. To wyświetla również pliki, które istnieją w katalogu. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Przykład 2:
Teraz użyj edytora VIM, aby utworzyć nowy plik o nazwie „ReadDireFile2.C". To utworzy nowy plik i otworzy go w edytorze. Naciśnij „Escape” i naciśnij klawisz „I” na klawiaturze, aby włączyć tryb Insert/Edit w edytorze. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Następnie skopiuj następujące wiersze kodu. Kod początkowy jest taki sam, ale nazwy zmiennych są zmieniane. Obecna ścieżka katalogu roboczego jest dostarczana do funkcji OpenDir za pomocą DOT (.) Charakter w tym kodzie. Następnie sprawdź, czy zwraca Null, czy nie. Jeśli zwróci NULL, użyj funkcji Perror, aby wyświetlić błąd i wyjść z głównej funkcji. Zmienna plików int jest używana do wyświetlania numeracji pliku i folderu w bieżącym katalogu. Zwiększyliśmy tę zmienną o 1 w pętli While, a następnie użyliśmy polecenia printf do wydrukowania jej wartości wraz z nazwą pliku lub folderu. Poza pętlą pobytu, zamknij katalog za pomocą metody zamkniętej.
Teraz skompiluj kod i przechowuj wyjście w „RedDirFile2.OUT ”plik. Poniższe cytowane polecenie jest wykonywane w Kali Linux.
Polecenie „LS” można wykorzystać do wyświetlania listy wszystkich plików i folderów w katalogu. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Po wykonaniu pliku wyjściowego kompilator wyświetla wszystkie pliki w terminalu, który znajduje się w bieżącym katalogu. Poniższe cytowane polecenie jest wykonywane w Kali Linux:
Wniosek
Każdy system plików może składać się z wielu plików i katalogów, które zawierają w nich więcej danych. W tym artykule dotyczy użycia funkcji ReadDIR C do odczytu wszystkich plików i folderów bieżącego katalogu roboczego systemu.