Otwórz funkcję 2 C

Otwórz funkcję 2 C
Być może wypróbowałeś wiele rodzajów funkcji C podczas wykonywania kodów C na platformie Linux. Te funkcje mogą wykonywać pewne operacje wejściowe i wyjściowe, jak zwykle robi to większość funkcji. Jedną z tych 2 funkcji C jest funkcja Open (). Funkcja Open () w języku programowania C otwiera plik w określonej ścieżce lub katalogu. Jeśli określony plik wskazany w kodzie nie istnieje w konkretnej lokalizacji, ta funkcja może rzucić wyjątek lub może go utworzyć w określonej lokalizacji/ścieżce, jeśli niektóre flagi są przekazane. Możemy stwierdzić, że funkcja otwarta jest cenna w równym stopniu do czytania i pisania. Tak więc obejmujemy użycie funkcji otwartej 2 C w naszym Ubuntu 20.04 Platforma wraz z kilkoma przykładami.

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:

  • O_rdonly: W trybie tylko do odczytu otwórz plik.
  • O_wronly: W trybie tylko do zapisu otwórz plik
  • O_RDWR: Otwórz plik w trybie czytania i zapisu
  • O_Creat: Ta flaga jest stosowana do utworzenia pliku, jeśli nie istnieje w określonej ścieżce lub katalogu
  • O_EXCL: Zapobiega tworzeniu plików, jeśli już istnieje w katalogu lub lokalizacji.

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.