Paano Gumamit ng Sumulat ng System Call In C

How Use Write System Call C



Ang tawag sa system ay nagsisilbing pangunahing gateway sa pagitan ng mga programa at ng kernel ng operating system ng Linux. Kahit na halos tiyak na kakailanganin mong magkaroon ng isang tawag sa system sa buong karera sa pagprograma sa C, hangarin mo rin ang pambihirang pagiging produktibo o isang tiyak na istilo ng tampok, ang Glibc repository o iba pang karaniwang mga silid aklatan na matatagpuan sa mga tanyag na distrito ng Linux ay sapat na para sa karamihan ng iyong mga kinakailangan Sa gabay na ito, magtataguyod kami ng isang konsepto tungkol sa tawag sa Sumulat ng System sa wikang C.

Syntax:

# isama

ssize_tsumulat(int tot, const void*buf, sukat_t bilang);

Sa syntax sa itaas na ito, ipinapakita ng unang linya ang silid-aklatan para sa mga tawag sa system. Sa pangalawang linya, ang ibig sabihin ng taut ay isang deskriptor ng file na sa katunayan ay isang numero na tumutukoy sa bukas na file ng isang proseso. Ang keyword * buf ay nangangahulugang buffer. Naglalaman ito ng anumang data dito. Susunod ay bilangin. Ito ang bilang ng mga byte na naisusulat sa isang deskriptor ng file mula sa buffer.







I-install ang Mga Kailangan:

Upang patakbuhin ang anumang code sa wikang C, kailangan mo munang mag-install ng ilang mga pakete sa pamamahagi ng Linux. Kung nais mong makita ang karagdagang impormasyon tungkol sa tawag sa system ng pagsulat, kailangan mong i-install ang manpages-dev package upang magawa ito. Upang buksan ang terminal gamit ang Ctrl + Alt + T shortcut key. Matapos buksan ito, isulat ang utos sa ibaba ng apt install na sinusundan ng keyword ng manpages-dev upang mag-install ng mga manpage.



$sudoapti-installmanpages-dev



Magtatagal ng ilang oras upang mai-install ang mga manage. Hintayin itong makumpleto.





Matapos ang pag-install, maaari mong makita ang karagdagang impormasyon tungkol sa tawag sa system ng pagsulat sa pamamagitan ng utos sa ibaba ng tao sa shell.



$lalaki 2 sumulat

Ang pahina ng output man para sa sumulat na utos ay ibinibigay sa ibaba. Maaari mong basahin ang impormasyon tungkol dito. Pindutin ang q upang umalis sa manwal.

Panahon na ngayon upang mai-install ang Gcc package sa iyong Linux system upang gumana sa wikang C. Para doon, buksan ang shell at isulat ang utos sa ibaba apt install utos kasunod ang keyword gcc.

$sudoapti-install gcc

Samantala, sa panahon ng pag-install, maaaring hilingin sa iyo na kumpirmahin ang pagkilos na ito ng pag-install sa pamamagitan ng pagpindot sa y upang magpatuloy at n upang ihinto ito. Kaya, i-tap ang y key at pindutin ang Enter key.

Ito ay mai-install sa iyong system sa loob ng ilang minuto, at ang mga huling linya ng output ay ipapakita sa snapshot sa ibaba.

Mga halimbawa:

Magkaroon tayo ng ilang mga halimbawa ng isang tawag sa system ng pagsulat sa aming pamamahagi ng Linux. Samakatuwid, buksan ang command-line shell at lumikha ng isang bagong C file dito gamit ang dot c extension. Kailangan mong gamitin ang nano utos sa ibaba upang mabilis na likhain ito at buksan ito. Binigyan namin ito ng isang pangalan bilang bago.c.

$nanobago.c

Ang window sa ibaba ay bubuksan. Ngayon ay kailangan mong isulat ang nakakabit na code sa file na ito. Sa code na ito, isinama muna namin ang isang unistd.h library. Pagkatapos nilikha namin ang pangunahing pagpapaandar, at sa loob ng pagpapaandar na ito, lumikha kami ng isang tawag sa system ng pagsulat. Sa tawag sa system na ito, ang unang parameter ay ang deskriptor ng file. Sa kasong ito, ang integer 1 ay kumakatawan sa screen ng output aparato, at naayos ito. Kaya ang aming output ay ipapakita sa screen. Ipinapakita ng pangalawang parameter ang data ng buffer. Maaari kang magdagdag ng anupaman dito. At ang huling parameter ay nagpapakita ng bilang ng bilang para sa data na ibinigay sa buffer parameter. Tulad ng nabanggit namin na 5 bilang ng bilang ng bilang, ipapakita lamang nito ang unang 5 byte ng data ng buffer at hindi papansinin ang mga natitirang byte. I-save ang code na ito gamit ang Ctrl + S shortcut key at lumabas sa file na ito gamit ang Ctrl + X command.

# isama

Int pangunahing()

{Sumulat(1Aqsa Yasin5);}

Ngayon sa terminal, subukan ang utos ng gcc sa ibaba upang maipon ang bagong nilikha na code na may isang pangalan ng file.

$gccbago.c

Suriin natin ang code na ito sa pamamagitan ng paggamit ng default a.out file na nilikha sa oras ng pagpapatakbo. Kaya, subukan ang nasa ibaba a.out utos upang suriin ang output ng tawag sa system ng pagsulat. Kailangan naming gamitin ito sa ./ upang piliin ang file mula sa kasalukuyang direktoryo.

$./a.out

Ang output na makikita mo ay ipinakita lamang ang salitang Aqsa dahil sa bilang na bilang 5.

Baguhin natin nang kaunti ang aming code. Binago namin ang bilang ng bilang sa 11 dahil mayroon kaming isang kabuuang 11 byte sa aming buffer data na Aqsa Yasin. Kaya sa oras na ito, ipapakita ng output ang buong byte ng data ng string na Aqsa Yasin. I-save ang file na ito gamit ang Ctrl + S at huminto gamit ang Ctrl + X shortcut key.

Tipunin natin ang na-update na code gamit ang bagong naka-install na gcc compiler para sa pamamahagi ng Linux. Subukan ang parehong utos ng gcc kasama ang pangalan ng isang file bilang bago.c.

$gccbago.c

Ipakita ngayon ang output ng parehong code gamit ang nakaraang a.out command tulad ng sa ibaba. Ipinapakita ng output ang buong string na Aqsa Yasin ng buffer.

$./a.out

Tingnan natin kung paano gumagana ang code kapag kinuha namin ang bilang ng bilang na mas malaki kaysa sa kabuuang bilang ng mga byte na naglalaman ng buffer data. Kaya, ginagamit namin ang bilang bilang 30. I-save at isara ang file.

Compile ang parehong nai-update na file gamit ang gcc command tulad ng sa ibaba.

$gccbago.c

Ipatupad ngayon ang file gamit ang utos na a.out, at ipapakita ng output ang data ng buffer pati na rin ang ilang halaga ng basura kasama nito tulad ng ipinakita sa snapshot output sa ibaba. $ ./A.out

Maaari mo ring suriin ang kabuuang bilang ng mga byte na nakasulat sa file sa pamamagitan ng paggamit ng code sa ibaba sa parehong file.

Compile ang code sa pamamagitan ng instruksiyon ng gcc.

$gccbago.c

Ipinapakita ng output ang kabuuang bilang ng mga byte, kabilang ang data ng buffer at line break, gamit ang a.out command.

$./a.out

Konklusyon:

Sa tutorial na ito, nailarawan namin ang konsepto upang magamit ang tawag sa system ng Sumulat sa C. Subukan ang lahat ng mga halimbawa upang maunawaan ang ideya ng tawag sa system ng pagsulat gamit ang artikulong ito.