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

Как да използвам Lseek System Call в C

Как да използвам Lseek System Call в C

Системното повикване Lseek е използвано за четене на някои специфични символи или данни от файл или за писане на някакво съдържание на конкретното местоположение на който и да е файл. Това означава, че можете да четете или пишете от между съдържанието на файл.

Синтаксис:

Off_t lseek (int fd, off_t offset, int откъде);

Това системно повикване „lseek“ изисква два заглавни файла, напр.ж., “Sys / типове.h “и„ unistd.з ”. Системното повикване lseek изисква три параметъра. Първият е „fd“, който е дескриптор на файл. Второто е „offset“, използвано за позициониране на показалеца. И третият параметър, „откъде“, се използва за определяне на позицията на указател на файл, напр.ж., началото, края, средата.

Инсталирайте Manpages:

За да проверите допълнителната информация относно системните обаждания, трябва да инсталирате пакета manpages-dev. Затова опитайте да стартирате терминала на черупката на Linux, като използвате клавишната комбинация Ctrl + Alt + T или го търсете от областта на активността. След като успешно стартирате командния терминал, изпълнете долната заявка за инсталиране, за да инсталирате библиотеката manpages-dev. Той изисква вашата текуща парола за акаунт, за да продължите с инсталацията. Въведете паролата и натиснете клавиша Enter от пишещата машина. Процесът на инсталиране ще бъде стартиран и ще започне събирането на информация.

$ sudo apt install manpages-dev

Процесът на инсталиране ще ви накара да изчакате малко време. След като инсталацията приключи, вече можете да проверите информацията относно командата “lseek”.  Така че, напишете командата по-долу „man 2“ заедно с името на системното повикване. Както можете да видите, проверявахме за „lseek“ в инструкцията по-долу.

$ човек 2 lseek

По-долу е отворена ръководството за системно повикване „lseek“. Можете да получите цялата информация относно него.

Инсталирайте GCC Compiler:

Сега е време да инсталираме компилатора GCC за компилиране на езикови файлове на C. Така че, трябва да използвате много проста команда apt install в черупката, за да я инсталирате, докато използвате разширението на компилатора като име на ключова дума по-долу.

$ sudo apt инсталирайте gcc

Ще ви отнеме малко време, за да завършите инсталацията му. След като инсталирате gcc пакета, вашата Linux система е готова да използва c езикови файлове в него.

Пример 01:

Преди да се задълбочите, за да разберете концепцията на системното повикване lseek, трябва да го стартирате с прост тип файл. И така, стартирайте терминала и опитайте командата за докосване по-долу, за да създадете прост файл с име „търси“ в началната директория на вашата Linux дистрибуция.

$ touch търси

Добавете някои данни във файла „търси“ и ги запазете. Можете да видите съдържанието на файла „търси“ в обвивката на командния ред, като използвате простата заявка „котка“ по-долу. Съдържанието на файл има няколко азбуки и цифри, заедно със знака „*“.

$ котка търси

Нека създадем „тест на файл от тип C“.c ”, използвайки ключовата дума nano, за да я отворите директно с Nano редактора. Опитайте се да изпълните командата по-долу, за да го направите.

$ nano тест.° С

Нека проверим една програма без командата lseek. Той ще отвори нано текстов редактор с C-тип файл, споменат в горната страна. Сега напишете показания по-долу код от изображението във файла C на редактора. Първите 4 реда съдържат заглавните файлове, необходими за изпълнение на командата “lseek”. След това е стартирана основната функция. В този основен метод дефинирахме данни за цяло число и тип знаци за по-нататъшно използване. Третият ред на основната функция използва отвореното повикване за отваряне на файл с име „търси“, който току-що създадохме по-горе, а изместването „O_RDWR“ се използва за разрешения за четене и запис. Съдържанието от файла е върнато на файловия дескриптор „f“. След това използвахме първото извикване на метод за четене, за да прочетем 12 символни данни от търсения файл. Функцията за запис е използвана за записване на данни на екрана. Използвана е друга команда за четене, за да се получат следващите 12 знака от дескриптора на файла „f“, а командата за запис чете следващите 12 знака на изходния екран. От това можем да предположим, че изходът ще покаже общо 24 знака от файла „търси“. Натиснете Ctrl + S, за да запазите този файл и опитайте Ctrl + X, за да го затворите.

Нека просто компилираме „теста.c ”с помощта на GCC компилаторната команда по-долу.

$ gcc тест.° С

Сега стартирайте кода на „тест.c ”файл за проверка на изхода на C кода, както е дадено по-долу. Резултатът показва 24-символен набор от съдържание от търсенето на файла, както е показано по-долу.

$ ./ а.навън

Нека използваме командата “lseek” в кода, за да проверим изхода на системно повикване. Така че отворете същия тест.c файл, използвайки командата по-долу nano.

$ nano тест.° С

Актуализирайте кода си такъв, какъвто е. Този път използваме 6 знака от съдържателния файл за четене и писане. Командата lseek е използвана за пропускане на следващите 5 знака от файла със съдържанието и прескачане към следващите знаци, използвайки отместването “SEEK_CUR”.

Нека да компилираме този код отново.

$ gcc тест.° С

Изходът на C кода с помощта на a.команда out показва първите 6 знака, след това пропуска следващите 5 знака и след това показва последователните следващи 6 знака.

$ ./ а.навън

Пример 02:

За да има някаква промяна, нека променим кода. Първо отворете файла.

$ nano тест.° С

Сега ще използваме отместването “SEEK_SET”, за да кажем на системното повикване “lseek” да покаже следващите 6 знака от 10-та позиция на низ.

Компилирайте C файла.

$ gcc тест.° С

Изходната команда a.out показва 6-те знака от 10-ия индекс на низ.

Заключение:

Това ръководство направи няколко прости примера за използване на командата за системно повикване „lseek“ за проверка или показване на съдържание или данни от която и да е позиция, която искаме.

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...