Системний дзвінок Lseek використовувався для читання певних символів або даних із файлу або для написання вмісту у певному місці будь-якого файлу. Це означає, що ви можете читати або писати між вмістом файлу.
Синтаксис:
Off_t lseek (int fd, off_t offset, int звідки);Для цього системного виклику “lseek” потрібні два заголовкові файли, наприклад.g., “Sys / типи.h »та« unistd.год ”. Системний виклик lseek вимагає трьох параметрів. Перший - “fd”, який є дескриптором файлу. Другий - «зміщення», що використовується для позиціонування вказівника. І третій параметр, "звідки", використовується для вказівки позиції вказівника на файл, наприклад.g., початок, кінець, середина.
Встановити сторінки:
Щоб перевірити додаткову інформацію щодо системних дзвінків, вам потрібно встановити пакет manpages-dev. Тож спробуйте запустити термінал оболонки Linux за допомогою комбінації клавіш Ctrl + Alt + T або виконайте пошук в області активності. Після успішного запуску командного терміналу виконайте наведений нижче запит на встановлення, щоб встановити бібліотеку manpages-dev. Для продовження встановлення потрібен ваш поточний пароль. Введіть пароль і натисніть на машинці клавішу Enter. Буде розпочато процес встановлення та розпочнеться збір інформації.
$ sudo apt install manpages-dev
Процес установки змусить вас почекати трохи часу. Після завершення встановлення ви можете перевірити інформацію щодо команди “lseek”. Отже, напишіть наведену нижче команду “man 2” разом із назвою системного виклику. Як бачите, ми перевіряли наявність “lseek” у наведеній нижче інструкції.
$ людина 2 lseek
Сторінка користувача для системного дзвінка “lseek” відкрита нижче. Ви можете отримати всю інформацію щодо цього.
Встановіть компілятор GCC:
Тепер нам пора встановити компілятор GCC для компіляції мовних файлів C. Отже, вам доведеться використовувати дуже просту команду apt install в оболонці, щоб встановити її, використовуючи розширення компілятора як назву ключового слова нижче.
$ sudo apt встановити gcc
На його встановлення знадобиться ваш невеликий час. Після встановлення пакета gcc ваша система Linux готова використовувати в ньому мовні файли.
Приклад 01:
Перш ніж глибоко зрозуміти концепцію системного виклику lseek, ви повинні розпочати його з простого типу файлу. Отже, запустіть термінал і спробуйте наведену нижче команду дотику, щоб створити простий файл із назвою „шукати” у домашньому каталозі дистрибутива Linux.
$ дотик шукати
Додайте деякі дані у файл „шукати” та збережіть їх. Ви можете побачити вміст файлу "шукати" в оболонці командного рядка, використовуючи простий запит "кішка" нижче. Вміст файлу містить кілька алфавітів та цифр, а також знак «*».
$ кішка шукає
Давайте створимо файл типу "тест".c ”за допомогою ключового слова nano, щоб безпосередньо відкрити його за допомогою редактора Nano. Спробуйте виконати наведену нижче команду, щоб зробити це.
$ нано-тест.c
Давайте перевіримо одну програму без команди lseek. Він відкриє нанотекстовий редактор із файлом типу C, згаданим у верхній частині. Тепер напишіть наведений нижче код із зображення у файлі редактора C. Перші 4 рядки містять файли заголовків, необхідні для реалізації команди “lseek”. Після цього була запущена основна функція. У цьому основному методі ми визначили цілочисельні та символьні типи даних для подальшого використання. Третій рядок основної функції використовував відкритий виклик для відкриття файлу з назвою „шукати”, який ми щойно створили вище, а зміщення „O_RDWR” було використано для дозволів на читання та запис. Вміст із файлу повернуто до дескриптора файлу “f”. Після цього ми використали перший виклик методу читання для зчитування 12 символьних даних із файлу пошуку. Функція запису була використана для запису даних на екран. Інша команда читання була використана для отримання наступних 12 символів з дескриптора файлу "f", а команда запису читає наступні 12 символів на екран виводу. З цього можна припустити, що на виході буде показано загалом 24 символи з файлу „шукати”. Натисніть Ctrl + S, щоб зберегти цей файл, і спробуйте Ctrl + X, щоб закрити його.
Давайте просто складемо “тест.c ”за допомогою наведеної нижче команди компілятора GCC.
$ gcc тест.c
Тепер запустіть код «тесту.файл ”для перевірки виводу коду С, як зазначено нижче. На виході відображається 24-символьний набір вмісту з файлу, як показано нижче.
$ ./ а.назовні
Давайте використаємо команду “lseek” у коді, щоб перевірити результати системного виклику. Тож відкрийте той самий тест.c, використовуючи наведену нижче команду nano.
$ нано-тест.c
Оновіть свій код таким, яким він є. Цього разу ми використовуємо 6 символів із файлу вмісту для читання та запису. Команда lseek була використана для пропуску наступних 5 символів із файлу вмісту та переходу до наступних символів із використанням зміщення “SEEK_CUR”.
Складемо цей код ще раз.
$ gcc тест.c
Вихід коду C за допомогою a.команда out показує перші 6 символів, потім пропускає наступні 5 символів, а потім показує наступні 6 символів.
$ ./ а.назовні
Приклад 02:
Щоб трохи змінити, давайте змінимо код. Спочатку відкрийте файл.
$ нано-тест.c
Тепер ми будемо використовувати зсув “SEEK_SET”, щоб сказати системному дзвінку “lseek” показати наступні 6 символів з 10-ї позиції рядка.
Скомпілюйте файл C.
$ gcc тест.c
Вихідна команда a.out показує 6 символів з 10-го індексу рядка.
Висновок:
У цьому посібнику зроблено кілька простих прикладів використання команди системного виклику “lseek” для перевірки або показу вмісту чи даних із будь-якої потрібної позиції.