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

Как да използвам отворен системен разговор в C

Как да използвам отворен системен разговор в C

Системните повиквания се използват в дистрибуциите на Linux, за да осигурят врата в Linux OS и програмите. Операционната система Linux използва библиотеката Glibc, за да поддържа системни повиквания в нея, докато използва езика C. Има много повече начини да използвате и системни обаждания. В това ръководство за статия ще обсъждаме отвореното системно обаждане в системата Linux. Системното повикване „Open“ е използвано за бързо отваряне на файла, посочен в пътя. Той ни уведоми за файловия дескриптор на създаден от потребителя файл. Използваме Ubuntu 20.04, за да получите практическо „Отворено“ системно обаждане.

Инсталирайте библиотеки

Езикът C изисква някои допълнителни библиотечни пакети да бъдат инсталирани като предпоставки. На първо място, трябва да инсталирате пакета manpages-dev, за да проверите информацията относно системните обаждания. Отворете терминала на командния ред от зоната на дейност и изпълнете инструкциите по-долу, за да инсталирате страници.

$ sudo apt install manpages-dev

Резултатът за завършване на инсталацията е даден по-долу.

Сега ще проверим за отворено системно обаждане с помощта на командата „man“, както е показано по-долу.

$ man 2 отворен

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

Горният синтаксис показва първите три реда необходими библиотеки, които трябва да бъдат добавени за системни повиквания. Налични са три синтаксиса за отворено системно повикване. Първият синтаксис показва "pathname", което е името на файл, който ще се отвори. Вторият параметър, „флагчета“, показва режима на файл, напр.ж., четете или пишете. Вторият синтаксис може да се използва, когато файлът не съществува. Режимът на параметрите се използва за показване на привилегиите във файла.

Сега е време да инсталирате компилатора GCC за отстраняване на грешки на C код в Ubuntu 20.04 Линукс дистрибуция. За целта изпълнете инструкциите по-долу в черупката, за да го направите.

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

Изисква се да докоснете „Y“, за да продължите да инсталирате GCC компилатора, в противен случай натиснете бутона „n“, за да затворите инсталацията. Затова натиснете бутона „y“ и натиснете Enter, за да продължите.

Изходът за завършването е показан по-долу.

Пример 01

Нека разгледаме много простия пример за системно повикване „Отворено“. Първо, отворете командната обвивка и създайте нов текстов файл „тест“.txt ”с помощта на простата команда за докосване, както следва:

$ тест за докосване.текст

Добавете някои данни към него ръчно. Можете да видите данните във файл, като използвате командата по-долу cat.

$ тест за котка.текст

Сега нека създадем нов C файл с помощта на nano команда в черупката, както е показано по-долу.

$ nano ново.° С

Ще бъде отворен по-долу GNU nano файл. В него трябва да въведете долния код на езика C. Виждате, че сме добавили необходимите библиотечни пакети, за да може C кодът да бъде изпълнен правилно. След това дефинирахме основната функция за работа при отворено системно повикване. Декларирахме две целочислени променливи. Променливата „n“ се използва за преброяване на буферни стойности, а „fd“ се използва за дескриптора на файла. Декларирахме буферния масив от тип символи като “buf” с размер 50. Отвореното системно повикване е използвано за четене на съдържанието от файла „test.txt ”и го върнете в дескриптора на файла. „O_RDONLY“ е използван за целите на четенето. Следващият ред показва системното повикване за четене, за да се съберат 10-те байта от буфера и да се върне в цяло число n. Също така, командата write е била използвана за записване на съдържанието или буферните данни във файлов дескриптор, който е изходният екран В нашия случай точно сега. Запазете този файл с помощта на Ctrl + S и го затворете с помощта на командата Ctrl + X.

#include
#include
#include
#include
int main ()

int n, fd;
char buf [50];
fd = отворен („тест.txt ”, O_RDONLY);
n = четене (fd, buf, 10);
запис (1, buf, 10);

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

$ gcc ново.° С

Сега е време да проверите изхода за C кода за отворен системен разговор. Нека използваме долу a.команда out в черупката. Резултатът показва 10 байта от съдържанието на файл „тест“.текст".

$ ./ а.навън

Да вземем друг пример за записване на съдържанието на един файл в друг файл с помощта на отворено системно повикване. За да създадете нов C файл, като използвате командата nano, както е показано по-долу.

$ nano ново.° С

Така че вземете същия код с малка промяна в него. Определихме друг файлов дескриптор в кода като “fd1”. Целият код е един и същ, с изключение на един допълнителен ред. Вторият последен ред на кода използва отвореното системно извикване, за да създаде нов файл с име „target“, използвайки O_CREAT и режима, само за запис като O_WRONLY. 0642 показва привилегиите, присвоени на този файл. И файлът е върнат в нов файлов дескриптор. Следващият ред показва команда за записване на байтовете съдържание в буфера според неговия дескриптор на файла. Запазете файла и го затворете.

Изпълнете командата gcc compile за отстраняване на грешки в езиковия файл C.

$ gcc ново.° С

За да покажете изхода на C код, опитайте a.инструкция в черупката, както е показано по-долу. Няма изход, тъй като изходът е пренасочен към новосъздадения файл „target“.

$ ./ а.навън

Нека проверим данните на целева програма с помощта на командата cat. Резултатът показва, че във файла има 20 байта.

$ котка цел

Заключение

В горния урок ви обяснихме да използвате отворено системно обаждане на език C, като използвате компилатора gcc. С помощта на различни примери, обяснени в това ръководство, ще ви накара да приложите желаната програма.

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...