Программирование на C

Как использовать системный вызов Lseek на C

Как использовать системный вызов Lseek на C

Системный вызов Lseek использовался для чтения некоторых определенных символов или данных из файла или для записи некоторого содержимого в определенном месте любого файла. Это означает, что вы можете читать или писать из содержимого файла.

Синтаксис:

Off_t lseek (int fd, off_t смещение, int откуда);

Для этого системного вызова lseek требуются два файла заголовков, e.грамм., «Sys / типы.h »и« unistd.час". Системный вызов lseek требует трех параметров. Первый - «fd», это дескриптор файла. Второй - «смещение», используется для позиционирования указателя. И третий параметр, «откуда», используется для указания позиции указателя файла, e.грамм., начало, конец, середина.

Установить Manpages:

Чтобы проверить дополнительную информацию о системных вызовах, вам необходимо установить пакет manpages-dev. Поэтому попробуйте запустить терминал оболочки Linux с помощью сочетания клавиш Ctrl + Alt + T или найдите его в области активности. После успешного запуска командного терминала выполните приведенный ниже запрос на установку apt, чтобы установить библиотеку manpages-dev. Для продолжения установки требуется пароль вашей текущей учетной записи. Введите пароль и нажмите клавишу Enter на пишущей машинке. Будет запущен процесс установки и начнется сбор информации.

$ sudo apt install manpages-dev

Процесс установки заставит немного подождать. После завершения установки вы можете проверить информацию о команде «lseek».  Итак, напишите приведенную ниже команду «man 2» вместе с именем системного вызова. Как видите, мы проверяли «lseek» в приведенной ниже инструкции.

$ man 2 lseek

Страница руководства по системному вызову «lseek» открыта ниже. Вы можете получить всю информацию о нем.

Установите компилятор GCC:

Пришло время установить компилятор GCC для компиляции языковых файлов C. Итак, вы должны использовать очень простую команду apt install в оболочке, чтобы установить ее, используя расширение компилятора в качестве имени ключевого слова ниже.

$ sudo apt install gcc

Установка займет у вас немного времени. После установки пакета gcc ваша система Linux готова использовать в ней языковые файлы c.

Пример 01:

Прежде чем углубляться в понимание концепции системного вызова lseek, вы должны начать его с простого типа файла. Итак, запустите терминал и попробуйте следующую сенсорную команду, чтобы создать простой файл с именем «seek» в домашнем каталоге вашего дистрибутива Linux.

$ сенсорный поиск

Добавьте данные в файл «seek» и сохраните его. Вы можете увидеть содержимое файла «искать» в оболочке командной строки, используя простой запрос «кошка» ниже. В содержимом файла есть несколько букв и цифр, а также знак «*».

$ cat seek

Создадим файл типа C «test.c »с помощью ключевого слова nano, чтобы открыть его напрямую с помощью редактора Nano. Попробуйте выполнить для этого команду ниже.

$ нано тест.c

Давайте проверим одну программу без команды lseek. Откроется текстовый редактор nano с файлом C-типа, упомянутым в верхней части. Теперь напишите показанный ниже код из изображения в файле редактора C. Первые 4 строки содержат файлы заголовков, необходимые для реализации команды «lseek». После этого была запущена основная функция. В этом основном методе мы определили данные целочисленного и символьного типа для дальнейшего использования. Третья строка основной функции использовала вызов open для открытия файла с именем «seek», который мы только что создали выше, а смещение «O_RDWR» использовалось для разрешений на чтение и запись. Содержимое файла было возвращено в файловый дескриптор «f». После этого мы использовали первый вызов метода чтения для чтения 12-символьных данных из файла поиска. Функция записи использовалась для записи данных на экран. Другая команда чтения была использована для получения следующих 12 символов из файлового дескриптора «f», и команда записи считывает следующие 12 символов на экран вывода. Исходя из этого, мы можем предположить, что вывод покажет в общей сложности 24 символа из файла «seek». Нажмите Ctrl + S, чтобы сохранить этот файл, и попробуйте Ctrl + X, чтобы закрыть его.

Давайте просто скомпилируем «test.c ”с помощью приведенной ниже команды компилятора GCC.

$ gcc test.c

Теперь запустите код «test.c ”, чтобы проверить вывод кода C, как показано ниже. На выходе был отображен 24-символьный набор содержимого из поиска файла, как показано ниже.

$ ./ а.вне

Давайте воспользуемся командой «lseek» в коде, чтобы проверить вывод системного вызова. Так что откройте тот же тест.c, используя следующую команду nano.

$ нано тест.c

Обновите свой код как есть. На этот раз мы использовали 6 символов из файла содержимого для чтения и записи. Команда lseek использовалась для пропуска следующих 5 символов из файла содержимого и перехода к следующим символам с использованием смещения «SEEK_CUR».

Скомпилируем этот код еще раз.

$ gcc test.c

Вывод кода C с использованием a.Команда out показывает первые 6 символов, затем пропускает следующие 5 символов, а затем показывает следующие 6 символов подряд.

$ ./ а.вне

Пример 02:

Чтобы внести некоторые изменения, давайте изменим код. Сначала откройте файл.

$ нано тест.c

Теперь мы будем использовать смещение «SEEK_SET», чтобы указать системному вызову «lseek» показывать следующие 6 символов с 10-й позиции строки.

Скомпилируйте файл C.

$ gcc test.c

Выходная команда a.out показывает 6 символов из 10-го индекса строки.

Заключение:

В этом руководстве было сделано несколько простых примеров использования команды системного вызова «lseek» для проверки или отображения содержимого или данных из любой позиции, которую мы хотим.

Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...
0 А.D. Руководство
Из множества существующих стратегических игр 0 A.D. удается выделиться как всеобъемлющее название и очень глубокая тактическая игра, несмотря на то, ч...
Учебное пособие по Unity3D
Введение в Unity 3D Unity 3D - мощный движок для разработки игр. Это кроссплатформенный, то есть он позволяет создавать игры для мобильных устройств, ...