Системното повикване служи като основен шлюз между програмите и ядрото на операционната система Linux. Въпреки че почти сигурно ще ви е необходим системен разговор през цялата ви кариера на програмиране, независимо дали се стремите към изключителна производителност или определен стил на функция, хранилището на Glibc или други стандартни библиотеки, намиращи се в популярните дистрибуции на Linux, ще са достатъчни за по-голямата част от вашите изисквания. В това ръководство ще установим концепция за извикването на System System на C език.
Синтаксис:
#includessize_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.
#includeInt 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. Опитайте всички примери, за да разберете идеята за системното повикване „писане“, използвайки тази статия.