O_RDONLY, O_WRONLY i O_RDWR Flagi w języku C

O_RDONLY, O_WRONLY i O_RDWR Flagi w języku C

W programowaniu zarządzanie plikami pozwala nam przechowywać i uzyskać dostęp do dowolnego rodzaju informacji, czy w bazach danych utworzonych przez użytkowników, plikach systemowych do uruchamiania programów, plikach wykonywalnych i tak dalej.

Język C zapewnia między innymi funkcję Open () do tworzenia lub otwierania plików. Ta funkcja otwiera lub tworzy plik określony w argumentach wejściowych przez jego bezwzględną lub względną ścieżkę.

Kiedy używamy tej funkcji, mamy możliwość określenia za pośrednictwem flag atrybutów, które plik do otwarcia lub utworzenia musi mieć, na przykład. czy powinno to być tylko odczyt, odczytanie, czy jedno i drugie.

W tym Wskazówka Linux Artykuł, dowiesz się, jak określić atrybuty odczytu i zapisu plików za pomocą O_rdonly, O_wronly, I O_RDWR flagi.

Przyjrzymy się teoretycznemu opisowi tych flag, a następnie zaimplementujemy ich użycie w przykładach zawierających fragmenty kodu i obrazy, w których ustawiamy atrybuty odczytu i zapisu z tymi flagami.

Opis flag o_rdonly, o_wronly i o_rdwr.

Flagi O_rdonly, O_wronly I O_RDWR są używane w funkcji systemowej Open () do określania trybu otwierania pliku. Aby lepiej zrozumieć, o czym są te flagi, spójrzmy na składnię wraz z krótkim opisem tej funkcji.

int Open (char *ścieżka, flagi int)

Funkcja Open () otwiera plik określony w ścieżka w jednym z następujących trzech trybów określonych w flagi:

O_rdonly: otwórz lub utwórz plik tylko do odczytu

O_wronly: otwiera lub tworzy plik tylko do zapisu.

O_RDWR: Otwiera lub tworzy plik z dostępem do odczytu i zapisu.

Funkcja Open () używa również dodatkowych flag, takich jak O_ Creat, aby utworzyć plik lub

O_ dołącz, aby dodać do niego tekst. W przypadkach, w których w argumencie wejściowym flag jest używane więcej niż jedna flaga, należy między nimi wykonywać logiczne lub.

Te flagi i funkcje, które ich używają, są zdefiniowane w „FCNTL.H ”nagłówek. Dlatego musimy je uwzględnić w naszym „.plik C ”w następujący sposób, aby ich użyć:

#włączać

Jak otworzyć plik z uprawnieniem odczytu i zapisu za pomocą funkcji Open () i flag O_RDONLY, O_WRONLY i O_RDWR w języku C.

W tym przykładzie pokażemy, jak otworzyć plik z uprawnieniami odczytu i zapisu. Aby to zrobić, używamy funkcji Open (), określając ścieżkę i nazwę pliku w ścieżka argument wejściowy i O_RDWR Czytaj i pisz flaga W flagach wejściowych. Oto kod:

#włączać
#włączać
void main ()

int fd otwarty („Dokumenty/przykład.txt ", o_rdwr);

W ten sposób Open () zwraca deskryptor FD, którego możemy użyć z funkcjami Read () i zapisu () do odczytu i zapisu pliku.

Jak utworzyć plik i ustawić atrybuty odczytu i zapisu z flagami O_RDONLY, O_WRONLY i O_RDWR w języku C.

W tym przykładzie tworzymy plik o nazwie "przykład.tekst" i zapisz to w „Dokumenty” katalog z atrybutami tylko odczytu za pomocą O_rdonly flaga.

Aby to zrobić, dodajemy nagłówek „fcntl.h ”do naszego pliku i wywołaj funkcję Open () określającą ścieżkę względną i nazwę pliku w ścieżka Argument wejściowy, który w tym przypadku jest „Dokumenty/przykład. tekst".

Ponieważ chcemy utworzyć plik, używamy O_ Creat flaga. A ponieważ chcemy nadać mu atrybuty tylko do odczytu, używamy O_rdonly flaga. Musimy więc wykonać logiczną lub operację między tymi dwiema flagami. Oto kod tego przykładu:

#włączać
#włączać
void main ()

int fd otwarty („Dokumenty/przykład.txt ", o_creat | o_rdonly);

Kompilujemy kod w konsoli polecenia Linux za pomocą GCC, określając ścieżkę i nazwę „.plik C ”i nazwa wyjścia, jak pokazano poniżej:

~ $ GCC Dokumenty/O_Flags.C -O O_FLAG

I wykonujemy wyjście za pomocą następującego polecenia:

~ $ ./O_flag

Po uruchomieniu tego kodu funkcja Open () utworzy plik z atrybutami tylko do odczytu. Na poniższym rysunku możemy zobaczyć plik utworzony w menedżerze plików Linux i jego atrybuty tylko do odczytu w jego właściwościach.

Jeśli chcemy utworzyć plik z dostępem do odczytu i zapisu, musimy użyć O_RDWR flaga, jak pokazano poniżej:

#włączać
#włączać
void main ()

int fd otwarty („Dokumenty/przykład.txt ", O_Creat | O_RDWR);

W takim przypadku funkcja Open () tworzy plik z atrybutami odczytu i zapisu, jak pokazano na poniższym rysunku.

Wniosek

W tym Wskazówka Linux Artykuł o języku C, wyjaśniliśmy, w jaki sposób możesz użyć O_rdonly, O_wronly, I O_RDWR Flagi, aby wybrać tryb otwartego pliku podczas korzystania z funkcji Open ().

Pokazaliśmy również, jak tworzyć pliki za pomocą funkcji Open () i O_ Creat flaga i jak przypisać uprawnienia odczytu i zapisu, wykonując logiczną lub operację między nim a O_rdonly I O_wronly flagi.

Mamy nadzieję, że ten artykuł uznałeś. Aby uzyskać więcej artykułów na temat porad C Language i Linux, użyj wyszukiwarki na naszej stronie internetowej.