Cara Menggunakan Tulis Sistem Panggilan Di C

How Use Write System Call C



Panggilan sistem berfungsi sebagai pintu masuk utama di antara program dan kernel sistem operasi Linux. Walaupun anda pasti memerlukan panggilan sistem sepanjang kerjaya pengaturcaraan C anda, sama ada anda bertujuan untuk produktiviti yang luar biasa atau gaya ciri tertentu, repositori Glibc atau perpustakaan standard lain yang terdapat di distro Linux yang popular akan mencukupi untuk sebahagian besar anda keperluan. Dalam panduan ini, kami akan mewujudkan konsep mengenai panggilan Sistem Tulis dalam bahasa C.

Sintaks:

#sertakan

ssize_tmenulis(int fd, const tidak sah*buf, hitungan size_t);

Dalam sintaks di atas, baris pertama menunjukkan perpustakaan untuk panggilan sistem. Pada baris kedua, fd bermaksud deskriptor fail yang sememangnya nombor yang menentukan fail terbuka proses. Kata kunci * buf bermaksud penyangga. Ini mengandungi sebarang data di dalamnya. Seterusnya adalah kiraan. Ini adalah bilangan bait yang akan ditulis ke deskriptor fail dari penyangga.







Pasang Prasyarat:

Untuk menjalankan mana-mana kod bahasa C, anda mesti memasang beberapa pakej terlebih dahulu dalam pengedaran Linux. Sekiranya anda ingin melihat maklumat lebih lanjut mengenai panggilan sistem tulis, anda harus memasang pakej manpages-dev untuk melakukannya. Untuk membuka terminal menggunakan kekunci pintasan Ctrl + Alt + T. Setelah membukanya, tulis perintah apt install di bawah ini diikuti dengan kata kunci manpages-dev untuk memasang manpages.



$sudotepatpasangmanpages-dev



Ia akan memakan masa untuk memasang halaman utama. Tunggu sehingga selesai.





Selepas pemasangan, anda dapat melihat maklumat tambahan mengenai panggilan sistem tulis melalui perintah man di bawah di shell.



$lelaki 2 menulis

Halaman man output untuk perintah tulis diberikan di bawah. Anda boleh membaca maklumat mengenainya. Tekan q untuk keluar dari manual.

Sekarang masanya untuk memasang pakej Gcc dalam sistem Linux anda untuk berfungsi dalam bahasa C. Untuk itu, buka shell dan tulis arahan pemasangan apt di bawah ini diikuti dengan kata kunci gcc.

$sudotepatpasang gcc

Sementara itu, semasa pemasangan, mungkin meminta anda mengesahkan tindakan pemasangan ini dengan menekan y untuk meneruskan dan n untuk menghentikannya. Oleh itu, ketik kekunci y dan tekan kekunci Enter.

Ini akan dipasang di sistem anda dalam beberapa minit, dan baris output terakhir akan seperti yang ditunjukkan dalam gambar di bawah.

Contoh:

Mari kita ada beberapa contoh panggilan sistem tulis dalam pengedaran Linux kami. Oleh itu, buka shell baris perintah dan buat fail C baru di dalamnya dengan sambungan dot c. Anda harus menggunakan arahan nano di bawah untuk membuat dan membukanya dengan cepat. Kami telah memberikannya nama sebagai baru.c.

$nanobaru.c

Tetingkap di bawah akan dibuka. Sekarang anda perlu menulis kod yang dilekatkan dalam fail ini. Dalam kod ini, kami telah memasukkan perpustakaan unistd.h terlebih dahulu. Kemudian kami telah membuat fungsi utama, dan dalam fungsi ini, kami telah membuat panggilan sistem tulis. Dalam panggilan sistem ini, parameter pertama adalah deskriptor fail. Dalam kes ini, bilangan bulat 1 mewakili skrin peranti output, dan ia tetap. Jadi output kami akan ditunjukkan di skrin. Parameter kedua menunjukkan data penyangga. Anda boleh menambahkannya. Dan parameter terakhir menunjukkan bilangan kiraan untuk data yang diberikan dalam parameter penyangga. Seperti yang telah kita sebutkan 5 sebagai bilangan kiraan, ia hanya akan menunjukkan 5 bait pertama dari data penyangga dan mengabaikan bait yang tersisa. Simpan kod ini menggunakan kekunci pintasan Ctrl + S dan keluar fail ini menggunakan perintah Ctrl + X.

#sertakan

Int utama()

{Tulis(1Aqsa Yasin5);}

Sekarang di terminal, cuba arahan gcc di bawah ini untuk menyusun kod yang baru dibuat ini dengan nama fail.

$gccbaru.c

Mari kita periksa kod ini dengan menggunakan fail a.out lalai yang dibuat pada masa berjalan. Oleh itu, cuba perintah a.out di bawah untuk memeriksa output panggilan sistem tulis. Kita harus menggunakannya dengan ./ untuk memilih fail dari direktori semasa.

$./a. keluar

Keluaran yang dapat anda lihat hanya memaparkan perkataan Aqsa kerana bilangan 5.

Mari ubah kod kita sedikit. Kami telah mengubah bilangan kiraan menjadi 11 kerana kami mempunyai sejumlah 11 bait dalam data penyangga kami Aqsa Yasin. Jadi kali ini, output akan menunjukkan keseluruhan bait data rentetan Aqsa Yasin. Simpan fail ini menggunakan Ctrl + S dan berhenti menggunakan kekunci pintasan Ctrl + X.

Mari menyusun kod yang dikemas kini menggunakan kompilator gcc yang baru dipasang untuk pengedaran Linux. Cuba arahan gcc yang sama dengan nama fail seperti baru.c.

$gccbaru.c

Sekarang paparkan output kod yang sama menggunakan perintah a.out sebelumnya seperti di bawah. Hasilnya menunjukkan rentetan penuh Aqsa Yasin penyangga.

$./a. keluar

Mari kita lihat bagaimana kod berfungsi apabila kita mengambil bilangan kiraan lebih besar daripada jumlah bait yang terdapat dalam data penyangga. Jadi, kami telah menggunakan kiraannya sebagai 30. Simpan dan tutup fail.

Susun fail yang dikemas kini yang sama menggunakan perintah gcc seperti di bawah.

$gccbaru.c

Sekarang jalankan fail menggunakan perintah a.out, dan output akan menunjukkan data penyangga serta beberapa nilai sampah dengannya seperti yang ditunjukkan dalam output snapshot di bawah. $ ./A.out

Anda juga boleh memeriksa jumlah bait yang ditulis ke dalam fail dengan menggunakan kod di bawah dalam fail yang sama.

Menyusun kod dengan arahan gcc.

$gccbaru.c

Keluaran menunjukkan jumlah bait, termasuk data penyangga dan pemecahan baris, menggunakan perintah a.out.

$./a. keluar

Kesimpulan:

Dalam tutorial ini, kami telah menguraikan konsep untuk menggunakan panggilan sistem Tulis di C. Cuba semua contoh untuk memahami idea panggilan sistem tulis menggunakan artikel ini.