Składnia
Składnia funkcji Open () w języku C podano poniżej. Omówmy jego parametry:
int Open (const char* ścieżka, int flagi [, int tryb]);
Ścieżka
Ścieżka to tytuł pliku, który chcesz otworzyć lub utworzyć. Odnosi się również do lokalizacji pliku. Jeśli nie pracujemy w tym samym katalogu co plik, możemy zapewnić bezwzględną ścieżkę, która zaczyna się od „/”. Możemy alternatywnie określić względną ścieżkę, w której w niektórych przypadkach wspominamy o nazwie pliku i rozszerzeniu.
Flagi
Aby wykorzystać flagi, oto lista z ich odpowiednimi wyjaśnieniami:
Tutaj O oznacza otwarte funkcje.
Plik nagłówka/biblioteka
W kodzie używany jest następujący plik biblioteki lub nagłówka dla tej funkcji.
#włączać
Aby utworzyć lub otworzyć plik w tym katalogu lub ścieżce, użyj edytora VIM. „Openfile.c ”to nazwa utworzonego pliku. Kiedy wpisujemy to polecenie, edytor otwiera plik w trybie edycji, umożliwiając nam wpisanie wierszy kodu w pliku. Aby zamknąć edytor VIM i zapisać plik, naciśnij klawisz Escape, wpisz dwukropek (:) i x, a następnie naciśnij klawisz Enter.
Następujące wiersze kodu są wpisywane w „Openfile.plik C ”. Używamy względnej ścieżki, aby otworzyć „Testopen.plik txt ”w następującym kodzie. O_RDONLY (tylko odczyt) i flagi O_Creat zostały przekazane (utwórz „Testopen.plik txt ”, jeśli nie istnieje w bieżącym katalogu).
Funkcja PrintF jest teraz używana do wyświetlania wartości zwracanej w deskryptorze pliku. Następnie weryfikujemy, czy deskryptor pliku jest równy -1, co wskazuje, że plik otwarty nie powiódł się i drukuje błąd.
Korzystamy z kompilatora GCC do montażu pliku. Jeśli nie masz zainstalowanego kompilatora GCC, uruchom następujące polecenia, aby to zdobyć. Wystarczy wykonać kolejne instrukcje w terminalu, aby zobaczyć wersję kompilatora GCC w systemie Linux-ubuntu:
Aktualizacja sudo apt
sudo apt instal instalacja kompilacji
Wpisz następujące polecenie, aby skompilować „OpenFile.c ”w kompilatorze GCC. Następujące polecenie obejmuje kompilator GCC. Następnie określ plik, który chcemy skompilować wraz z rozszerzeniem i flagą -O (używany do wyświetlania pliku do określonego pliku obiektu, który jest określony zaraz po tej flagi):
GCC Openfile.C -O Openfile.na zewnątrz
Alternatywnie możemy uruchomić polecenie przed flagą -O, która wytwarza „a.OUT „Plik obiektowy w bieżącym katalogu domyślnie. Korzystając z polecenia katalogu listy, sprawdź plik wyjściowy lub obiektowy, i.mi. Otwórz plik.na zewnątrz.
Wpisz następujące polecenie, aby wykonać lub uruchomić plik wyjściowy lub obiektowy, który wyświetla deskryptor pliku równy 3. Wskazuje, że dostarczony plik (testopen.txt) jest obecny w katalogu zawierającym plik wyjściowy.
Otwórz ponownie plik C za pomocą edytora VIM, ale tym razem zmodyfikuj nazwę pliku (OpenFile1.txt) w funkcji otwartej. Następnie zapisz i zamknij „Openfile.plik C ”.
Kolejną zmianą w otwartym poleceniu jest przekazywanie flagi O_RDONLY, która otwiera „OpenFile1.txt ”w trybie tylko do odczytu. Oznacza to, że możemy tylko odczytać dane pliku. Nie możemy wykonać funkcji zapisu lub aktualizacji w tym określonym pliku.
Ponownie skompiluj plik, aby zaktualizować plik wyjściowy. Następnie uruchom kod za pomocą pliku obiektu. Ponieważ nie mamy określonego pliku tekstowego w bieżącym katalogu, użycie funkcji Open () rzuciło błąd i zwraca A1, który jest przechowywany w zmiennej FileDeScriptor typu liczb całkowity. Poniższy ekran wyświetla wyjście otwartego pliku. Jeśli plik wyjściowy nie został określony, po prostu wpisz „./A.na terminalu, aby zobaczyć wyjście pliku.
Otworzyliśmy „Openfile.plik c ”w edytorze vim ponownie i użył flagi O_EXCL w poleceniu Open. Oznacza to, że jeśli określony plik nie istnieje w katalogu, nie tworz go; Jeśli tak, po prostu otwórz to. Ponieważ nie ma „OpenFile1.plik txt ”W katalogu listy metoda otwartego zwraca błąd.
Poniższy ekran pokazuje, że nie mamy podanego pliku na ścieżce, a funkcja otwarta zwraca -1. Wskazuje to, że nie ma takiego pliku ani katalogu. Jeśli polecenie pliku wyjściowego jest wpisane nieprawidłowo, zwraca błąd ogólny - „Brak takiego pliku lub katalogu”.
Wniosek
Ten artykuł dotyczy użycia funkcji otwartej 2 C w systemie Kali Linux. Korzystając z tego połączenia systemowego, omówiliśmy, w jaki sposób można go użyć do łatwego otwierania i odczytu pliku i jego zawartości. Omówiliśmy, w jaki sposób rzuca błąd, gdy deskryptor pliku nie znajdzie wymaganego pliku.