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

Как да използвам Системно обаждане в C

Как да използвам Системно обаждане в C

Системното повикване служи като основен шлюз между програмите и ядрото на операционната система Linux. Въпреки че почти сигурно ще ви е необходим системен разговор през цялата ви кариера на програмиране, независимо дали се стремите към изключителна производителност или определен стил на функция, хранилището на Glibc или други стандартни библиотеки, намиращи се в популярните дистрибуции на Linux, ще са достатъчни за по-голямата част от вашите изисквания. В това ръководство ще установим концепция за извикването на System System на C език.

Синтаксис:

#include
ssize_t запис (int fd, const void * buf, size_t count);

В този по-горе синтаксис, първият ред показва библиотеката за системни повиквания. На втория ред fd означава дескриптор на файл, който наистина е число, което определя отворения файл на процеса. Ключовата дума * buf означава буфер. Това съдържа всички данни в него. Следва броят. Това е броят на байтовете, които трябва да бъдат записани във файлов дескриптор от буфера.

Необходими условия за инсталиране:

За да стартирате който и да е код на език C, първо трябва да инсталирате някои пакети в дистрибуцията на Linux. Ако искате да видите допълнителна информация относно системното повикване за запис, трябва да инсталирате пакета manpages-dev, за да го направите. За да отворите терминала, използвайте клавишната комбинация Ctrl + Alt + T. След като го отворите, напишете командата apt install по-долу, последвана от ключовата дума manpages-dev, за да инсталирате manpages.

$ sudo apt install manpages-dev

Инсталирането на manpages ще отнеме известно време. Изчакайте да завърши.

След инсталацията можете да видите допълнителната информация за системното повикване “write” чрез командата man по-долу в черупката.

$ man 2 пишете

Изходната страница на човека за командата “write” е дадена по-долу. Можете да прочетете информацията за него. Натиснете q, за да излезете от ръководството.

Сега е време да инсталирате пакета “Gcc” във вашата Linux система, за да работи на езика C. За това отворете обвивката и напишете командата по-долу apt install, последвана от ключовата дума „gcc“.

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

Междувременно по време на инсталацията може да поиска да потвърдите това действие на инсталацията, като натиснете „y“, за да продължите, и „n“, за да го спрете. И така, докоснете клавиша „y“ и натиснете клавиша Enter.

Той ще бъде инсталиран във вашата система в рамките на няколко минути и последните редове ще бъдат както е показано на снимката по-долу.

Примери:

Нека имаме няколко примера за системно повикване „писане“ в нашата Linux дистрибуция. Следователно отворете обвивката на командния ред и създайте нов C файл в нея с разширение точка "c". Трябва бързо да използвате нано командата за бързо създаване и отваряне. Дадохме му име като „ново.° С".

$ nano ново.° С

Ще се отвори прозорецът отдолу. Сега трябва да напишете прикрепения код в този файл. В този код сме включили unistd.h библиотека първо. След това създадохме основната функция и в рамките на тази функция създадохме системно повикване „писане“. В това системно извикване първият параметър е файловият дескриптор. В този случай цяло число 1 представлява екрана на изходното устройство и е фиксирано. Така нашите резултати ще бъдат показани на екрана. Вторият параметър показва данните за буфера. Можете да добавите всичко към него. И последният параметър показва броя на данните, дадени в параметъра на буфера. Тъй като споменахме 5 като бройно число, той ще покаже само първите 5 байта от буферните данни и ще игнорира оставените байтове. Запишете този код с помощта на клавишната комбинация Ctrl + S и излезте от този файл с помощта на командата Ctrl + X.

#include
Int main ()
Пишете (1, “Aqsa Yasin”, 5);

Сега в терминала опитайте командата gcc по-долу, за да компилирате този новосъздаден код с име на файл.

$ gcc ново.° С

Нека проверим този код, като използваме a по подразбиране.файл, създаден по време на изпълнение. Така че, опитайте по-долу a.команда out, за да проверите изхода на системното повикване “write”. Трябва да го използваме с „./ ”, За да изберете файла от текущата директория.

$ ./ а.навън

Изходът, който можете да видите, показва само думата "Aqsa" поради броя на номера 5.

Нека променим малко нашия код. Променихме броя на броенето на 11, защото имаме общо 11 байта в нашите буферни данни „Aqsa Yasin“. Този път изходът ще покаже всички байтове на низови данни „Aqsa Yasin“. Запазете този файл с помощта на Ctrl + S и излезте с помощта на клавишната комбинация Ctrl + X.

Нека компилираме актуализирания код, като използваме новоинсталирания gcc компилатор за дистрибуция на Linux. Опитайте същата команда gcc заедно с името на файл като „нов.° С".

$ gcc ново.° С

Сега покажете изхода на същия код, използвайки предишното „а.команда ”, както е показано по-долу. Резултатът показва пълния низ "Aqsa Yasin" на буфера.

$ ./ а.навън

Нека да видим как работи кодът, когато вземем броя на числата, по-голям от общия брой байтове, съдържащи се в данните на буфера. И така, използваме броят като 30. Запазете и затворете файла.

Компилирайте същия актуализиран файл с помощта на командата gcc, както по-долу.

$ gcc ново.° С

Сега изпълнете файла, като използвате a.out, а изходът ще покаже буферните данни, както и някаква стойност на боклука с него, както е показано в изхода за моментна снимка по-долу.$ ./ а.навън

Можете също така да проверите общия брой байтове, записани във файла, като използвате кода по-долу в същия файл.

Компилирайте кода чрез инструкция за gcc.

$ gcc ново.° С

Резултатът показва общия брой байтове, включително буферни данни и прекъсване на реда, използвайки a.команда out.

$ ./ а.навън

Заключение:

В този урок ние разработихме концепцията за използване на системното повикване “Write” в C. Опитайте всички примери, за да разберете идеята за системното повикване „писане“, използвайки тази статия.

HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...