Cum se utilizează scrierea apelului de sistem în C

How Use Write System Call C



Apelul de sistem servește drept gateway principal între programe și nucleul sistemului de operare Linux. Deși aproape sigur ar trebui să aveți un apel de sistem pe parcursul 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_tscrie(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.



$sudoaptinstalaremanpages-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 de scriere prin comanda man de mai jos din shell.



$om 2 scrie

Pagina manuală de ieșire pentru comanda de scriere 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.

$sudoaptinstalare gcc

Între timp, în timpul instalării, vă poate cere să confirmați această acțiune de instalare apăsând y pentru a continua și n să o opriți. 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 ca nou.c.

$nanonou.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 mai întâi o bibliotecă unistd.h. 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(1Aqsa Yasin5);}

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

$gccnou.c

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

$./a.out

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

Să schimbăm puțin codul nostru. 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 afișa întregii octeți 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 new.c.

$gccnou.c

Afișați acum ieșirea aceluiași cod folosind comanda anterioară a.out ca mai jos. Ieșirea arată întregul șir Aqsa Yasin al bufferului.

$./a.out

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țin datele tampon. Așadar, 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.

$gccnou.c

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

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.

$gccnou.c

Ieșirea arată numărul total de octeți, inclusiv datele tampon și întreruperea liniei, utilizând comanda a.out.

$./a.out

Concluzie:

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