Programare C

Cum se utilizează scrierea unui apel de sistem în C

Cum se utilizează scrierea unui apel de sistem în C

Apelul de sistem servește drept gateway principal între programe și nucleul sistemului de operare Linux. Deși aproape sigur ar fi nevoie să aveți un apel de sistem de-a lungul carierei dvs. de programare C, indiferent dacă doriți o productivitate excepțională sau un anumit stil de caracteristică, depozitul Glibc sau alte biblioteci standard găsite în distribuțiile Linux populare vor fi suficiente pentru marea majoritate a cerințe. În acest ghid, vom stabili un concept despre apelul sistemului de scriere în limbajul C.

Sintaxă:

#include
ssize_t write (int fd, const void * buf, size_t count);

În această sintaxă de mai sus, prima linie arată biblioteca pentru apeluri de sistem. Pe a doua linie, fd reprezintă un descriptor de fișier care este într-adevăr un număr care specifică fișierul deschis al unui proces. Cuvântul cheie * buf înseamnă buffer. Acesta conține orice date din acesta. Următorul este numărul. Este numărul de octeți care trebuie scris într-un descriptor de fișiere din buffer.

Instalați premisele:

Pentru a rula orice cod de limbă C, trebuie mai întâi să instalați câteva pachete în distribuția Linux. Dacă doriți să vedeți informații suplimentare cu privire la apelul de sistem de scriere, trebuie să instalați pachetul manpages-dev pentru a face acest lucru. Pentru a deschide terminalul utilizând tasta de comandă rapidă Ctrl + Alt + T. După deschiderea acestuia, scrieți comanda apt install de mai jos urmată de cuvântul cheie manpages-dev pentru a instala paginile de manual.

$ sudo apt install manpages-dev

Va dura ceva timp pentru a instala paginile de manual. Așteptați să se finalizeze.

După instalare, puteți vedea informațiile suplimentare despre apelul de sistem „write” prin comanda man de mai jos în shell.

$ man 2 scrie

Pagina manuală de ieșire pentru comanda „write” este dată mai jos. Puteți citi informațiile despre aceasta. Apăsați q pentru a ieși din manual.

Acum este timpul să instalați pachetul „Gcc” în sistemul dvs. Linux pentru a funcționa în limbajul C. Pentru aceasta, deschideți shell-ul și scrieți comanda apt install de mai jos urmată de cuvântul cheie „gcc”.

$ sudo apt install gcc

Între timp, în timpul instalării, vă poate cere să confirmați această acțiune de instalare apăsând pe „y” pentru a continua și pe „n” pentru a o opri. Deci, atingeți tasta „y” și apăsați tasta Enter.

Acesta va fi instalat în sistemul dvs. în câteva minute, iar ultimele linii de ieșire vor fi așa cum se arată în instantaneul de mai jos.

Exemple:

Să avem câteva exemple de apel de sistem „de scriere” în distribuția noastră Linux. Prin urmare, deschideți shell-ul liniei de comandă și creați un fișier C nou în acesta cu extensia punct „c”. Trebuie să utilizați comanda nano de mai jos pentru a o crea și a o deschide rapid. I-am dat un nume „nou.c ”.

$ nano nou.c

Fereastra de mai jos va fi deschisă. Acum trebuie să scrieți codul atașat în acest fișier. În acest cod, am inclus un unistd.h biblioteca întâi. Apoi am creat funcția principală și, în cadrul acestei funcții, am creat un apel de sistem „de scriere”. În acest apel de sistem, primul parametru este descriptorul de fișiere. În acest caz, numărul întreg 1 reprezintă ecranul dispozitivului de ieșire și este fix. Deci rezultatul nostru va fi afișat pe ecran. Al doilea parametru arată datele tampon. Puteți adăuga orice. Și ultimul parametru arată numărul de numărare pentru datele date în parametrul tampon. După cum am menționat 5 ca număr de numărare, acesta va afișa doar primii 5 octeți ai datelor tampon și va ignora octeții rămași. Salvați acest cod utilizând tasta de comandă rapidă Ctrl + S și ieșiți din acest fișier folosind comanda Ctrl + X.

#include
Int main ()
Scrieți (1, „Aqsa Yasin”, 5);

Acum, în terminal, încercați comanda gcc de mai jos pentru a compila acest cod nou creat cu un nume de fișier.

$ gcc nou.c

Să verificăm acest cod folosind valoarea implicită a.fișier creat în timpul rulării. Deci, încercați mai jos a.comanda out pentru a verifica ieșirea apelului de sistem „write”. Trebuie să-l folosim cu „./ ”Pentru a alege fișierul din directorul curent.

$ ./A.afară

Ieșirea pe care o puteți vedea a afișat doar cuvântul „Aqsa” din cauza numărului de număr 5.

Să ne schimbăm puțin codul. Am schimbat numărul de numărare la 11 deoarece avem un total de 11 octeți în datele noastre tampon „Aqsa Yasin”. Deci, de data aceasta, ieșirea va arăta întregul octet de date șir „Aqsa Yasin”. Salvați acest fișier folosind Ctrl + S și renunțați utilizând tasta de comandă rapidă Ctrl + X.

Să compilăm codul actualizat utilizând compilatorul gcc nou instalat pentru distribuția Linux. Încercați aceeași comandă gcc împreună cu numele unui fișier ca „nou.c ”.

$ gcc nou.c

Afișați acum ieșirea aceluiași cod folosind „a.comanda „out” ca mai jos. Ieșirea arată șirul complet „Aqsa Yasin” al bufferului.

$ ./A.afară

Să vedem cum funcționează codul atunci când luăm numărul de contor mai mare decât numărul total de octeți pe care îl conține datele tamponului. Deci, am folosit numărul 30. Salvați și închideți fișierul.

Compilați același fișier actualizat folosind comanda gcc ca mai jos.

$ gcc nou.c

Acum executați fișierul folosind a.comanda out, iar ieșirea va afișa datele tamponului, precum și o anumită valoare a gunoiului, așa cum este afișat în rezultatul instantaneu de mai jos.$ ./A.afară

De asemenea, puteți verifica numărul total de octeți scrise în fișier utilizând codul de mai jos din același fișier.

Compilați codul prin instrucțiuni gcc.

$ gcc nou.c

Ieșirea arată numărul total de octeți, inclusiv date tampon și întreruperi de linie, folosind a.comanda out.

$ ./A.afară

Concluzie:

În acest tutorial, am elaborat conceptul de utilizare a apelului de sistem „Write” în C. Încercați toate exemplele pentru a înțelege ideea apelului de sistem „scriere” folosind acest articol.

Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...
Cele mai bune jocuri pentru a juca cu urmărirea manuală
Oculus Quest a introdus recent marea idee de urmărire manuală fără controlere. Cu un număr din ce în ce mai mare de jocuri și activități care execută ...
Cum se afișează suprapunerea OSD în aplicații și jocuri Linux pe ecran complet
Jucarea jocurilor pe ecran complet sau utilizarea aplicațiilor în modul ecran complet fără distragere vă poate elimina din informațiile relevante ale ...