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.