Programowanie C

Jak używać wywołania systemowego Lseek w C

Jak używać wywołania systemowego Lseek w C

Wywołanie systemowe Lseek zostało użyte do odczytania określonych znaków lub danych z pliku lub zapisania zawartości w określonej lokalizacji dowolnego pliku. Oznacza to, że możesz czytać lub pisać pomiędzy zawartością pliku.

Składnia:

Off_t lseek(int fd, off_t offset, int skąd);

To wywołanie systemowe „lseek” wymaga dwóch plików nagłówkowych, np.sol., „sys/typy.h” i „unistd.h”. Wywołanie systemowe lseek wymaga trzech parametrów. Pierwszym z nich jest „fd”, który jest deskryptorem pliku. Drugi to „przesunięcie”, używane do pozycjonowania wskaźnika. Trzeci parametr, „gdzie”, służy do określenia pozycji wskaźnika pliku, e.sol., początek, koniec, środek.

Zainstaluj Manpages:

Aby sprawdzić dodatkowe informacje dotyczące wywołań systemowych, musisz zainstalować pakiet manpages-dev. Spróbuj więc uruchomić terminal powłoki Linux za pomocą skrótu klawiszowego Ctrl+Alt+T lub wyszukaj go w obszarze aktywności. Po pomyślnym uruchomieniu terminala poleceń wykonaj poniższe zapytanie apt install, aby zainstalować bibliotekę manpages-dev. Aby kontynuować instalację, wymagane jest Twoje aktualne hasło do konta. Wprowadź hasło i naciśnij klawisz Enter na maszynie do pisania. Rozpocznie się proces instalacji i rozpocznie się zbieranie informacji.

$ sudo apt install manpages-dev

Proces instalacji sprawi, że poczekasz trochę czasu. Po zakończeniu instalacji możesz teraz sprawdzić informacje dotyczące polecenia „lseek”.  Napisz więc poniższe polecenie „man 2” wraz z nazwą wywołania systemowego. Jak widać, w poniższej instrukcji sprawdzaliśmy „lseek”.

$ mężczyzna 2 szukam

Strona man dla wywołania systemowego „lseek” została otwarta poniżej. Możesz uzyskać wszystkie informacje na ten temat.

Zainstaluj kompilator GCC:

Teraz czas na zainstalowanie kompilatora GCC do kompilacji plików w języku C. Musisz więc użyć bardzo prostego polecenia apt install w powłoce, aby zainstalować go, używając rozszerzenia kompilatora jako nazwy słowa kluczowego poniżej.

$ sudo apt zainstaluj gcc

Instalacja zajmie niewiele czasu. Po zainstalowaniu pakietu gcc Twój system Linux jest gotowy do użycia w nim plików językowych c.

Przykład 01:

Zanim zagłębisz się w zrozumienie koncepcji wywołania systemowego lseek, musisz zacząć od prostego typu pliku. Uruchom więc terminal i wypróbuj poniższe polecenie dotykowe, aby utworzyć prosty plik o nazwie „szukaj” w katalogu domowym swojej dystrybucji Linuksa.

$ dotknij szukaj

Dodaj dane do pliku „szukaj” i zapisz go. Możesz zobaczyć zawartość pliku „szukaj” w powłoce wiersza poleceń, używając prostego zapytania „cat” poniżej. Zawartość pliku zawiera kilka liter i cyfr wraz ze znakiem „*”.

$ szuka kota

Stwórzmy plik typu C „test.c” za pomocą słowa kluczowego nano, aby bezpośrednio otworzyć go w edytorze Nano. Spróbuj wykonać poniższe polecenie, aby to zrobić.

$test nano.do

Sprawdźmy jeden program bez polecenia lseek. Otworzy się edytor tekstu nano z plikiem typu C wymienionym w górnej części. Teraz napisz poniższy kod z obrazka w pliku C edytora. Pierwsze 4 wiersze zawierają pliki nagłówkowe niezbędne do wykonania polecenia „lseek”. Po tym, główna funkcja została uruchomiona. W tej głównej metodzie zdefiniowaliśmy dane typu całkowitego i znakowego do dalszego wykorzystania. Trzecia linia funkcji main używa wywołania open do otwarcia pliku o nazwie „seek”, który właśnie stworzyliśmy powyżej, a przesunięcie „O_RDWR” zostało użyte do odczytu i zapisu. Zawartość pliku została zwrócona do deskryptora pliku „f”. Następnie użyliśmy pierwszego wywołania metody read, aby odczytać 12-znakowe dane z pliku wyszukiwania. Funkcja zapisu została użyta do zapisywania danych na ekranie. Użyto innego polecenia odczytu w celu pobrania następnych 12 znaków z deskryptora pliku „f”, a polecenie zapisu odczytuje kolejne 12 znaków z ekranu wyjściowego. Na tej podstawie możemy założyć, że na wyjściu pojawią się łącznie 24 znaki z pliku „szukaj”. Naciśnij Ctrl+S, aby zapisać ten plik i spróbuj Ctrl+X, aby go zamknąć.

Po prostu skompilujmy „test.c” za pomocą poniższego polecenia kompilatora GCC.

$ test gcc.do

Teraz uruchom kod „testu.plik c”, aby sprawdzić wyjście kodu C, jak podano poniżej. Wynik wyświetlił 24-znakowy zestaw treści z szukanego pliku, jak poniżej.

$ ./za.na zewnątrz

Użyjmy polecenia „lseek” w kodzie, aby sprawdzić wyjście wywołania systemowego. Więc otwórz ten sam test.c plik za pomocą poniższego polecenia nano.

$test nano.do

Zaktualizuj swój kod tak, jak jest. Tym razem do odczytu i zapisu użyliśmy 6 znaków z pliku treści. Polecenie lseek zostało użyte do pominięcia następnych 5 znaków z pliku treści i przeskoczenia do następnych znaków za pomocą przesunięcia „SEEK_CUR”.

Skompilujmy ten kod jeszcze raz.

$ test gcc.do

Wyjście kodu C za pomocą a.komenda out pokazuje pierwsze 6 znaków, następnie pomija kolejne 5 znaków, a następnie pokazuje kolejne 6 kolejnych znaków.

$ ./za.na zewnątrz

Przykład 02:

Aby coś zmienić, zmieńmy kod. Najpierw otwórz plik.

$test nano.do

Teraz użyjemy przesunięcia „SEEK_SET”, aby powiedzieć wywołaniu systemowemu „lseek”, aby pokazało następne 6 znaków z 10. pozycji ciągu.

Skompiluj plik C.

$ test gcc.do

Polecenie wyjściowe a.out pokazuje 6 znaków z 10. indeksu ciągu.

Wniosek:

W tym przewodniku przedstawiono kilka prostych przykładów użycia polecenia wywołania systemowego „lseek” w celu sprawdzenia lub wyświetlenia zawartości lub danych z dowolnej pozycji.

Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
Gry SuperTuxKart for Linux
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...