Cara Menggunakan Panggilan Sistem Terbuka di C

How Use Open System Call C

Panggilan sistem digunakan dalam distribusi Linux untuk menyediakan pintu di dalam OS Linux dan program. Sistem operasi Linux menggunakan pustaka Glibc untuk mendukung panggilan sistem di dalamnya saat menggunakan bahasa C. Ada lebih banyak cara untuk menggunakan panggilan sistem juga. Dalam panduan artikel ini, kita akan membahas panggilan sistem terbuka di sistem Linux. Panggilan sistem terbuka telah digunakan untuk membuka file yang ditentukan di jalur dengan cepat. Ini memberi tahu kami tentang deskriptor file dari file yang dibuat pengguna. Kami telah menggunakan Ubuntu 20.04 untuk mendapatkan beberapa panggilan sistem Open langsung.

Instal Perpustakaan

Bahasa C memerlukan beberapa paket perpustakaan tambahan untuk diinstal sebagai prasyarat. Pertama-tama, Anda perlu menginstal paket manpages-dev untuk memeriksa informasi mengenai panggilan sistem. Buka terminal baris perintah dari area aktivitas dan jalankan instruksi di bawah ini untuk menginstal halaman manual.



$ sudo apt install halaman manual-dev



Output untuk penyelesaian instalasi telah diberikan di bawah ini.



Sekarang kita akan memeriksa panggilan sistem terbuka menggunakan perintah man seperti di bawah ini.

$ pria2membuka



Halaman manual keluaran untuk panggilan sistem terbuka telah ditunjukkan di bawah ini. Anda dapat melihat informasi tambahan mengenai hal itu. Tekan tombol q untuk keluar.

Sintaks di atas menunjukkan tiga baris pertama dari pustaka yang diperlukan untuk ditambahkan untuk panggilan sistem. Ada tiga sintaks yang tersedia untuk panggilan sistem terbuka. Sintaks pertama menunjukkan nama path, yang merupakan nama file yang akan dibuka. Parameter kedua, flag, menunjukkan mode file, misalnya, baca atau tulis. Sintaks kedua dapat digunakan ketika file tidak ada. Mode parameter digunakan untuk menunjukkan hak istimewa pada file.

Sekarang saatnya menginstal compiler GCC untuk debugging kode C di distribusi Linux Ubuntu 20.04. Untuk itu, jalankan instruksi di bawah ini di shell untuk melakukannya.

$ sudo apt install gcc

Ini mengharuskan Anda untuk menekan Y untuk melanjutkan menginstal kompiler GCC, jika tidak tekan tombol n untuk menutup instalasi. Jadi tekan tombol y dan tekan Enter untuk melanjutkan.

Output untuk penyelesaian ditunjukkan di bawah ini.

Contoh 01

Mari kita lihat contoh yang sangat sederhana dari panggilan sistem terbuka. Pertama, buka shell perintah dan buat file teks baru test.txt menggunakan perintah sentuh sederhana sebagai berikut:

$menyentuhtest.txt

Tambahkan beberapa data ke dalamnya secara manual. Anda dapat melihat data dalam file menggunakan perintah cat di bawah ini.

$kucingtest.txt

Sekarang mari kita buat file C baru menggunakan perintah nano di shell, seperti yang ditunjukkan di bawah ini.

$nanobaru.c

File nano GNU di bawah ini akan dibuka. Anda harus mengetikkan kode bahasa C di bawah ini di dalamnya. Anda dapat melihat kami telah menambahkan paket perpustakaan yang diperlukan agar kode C dapat dieksekusi dengan benar. Setelah itu, kami telah mendefinisikan fungsi utama untuk bekerja pada panggilan sistem terbuka. Kami telah mendeklarasikan dua variabel integer. Variabel n digunakan untuk menghitung nilai buffer, dan fd digunakan untuk deskriptor file. Kami telah mendeklarasikan array buffer tipe karakter sebagai buf yang memiliki ukuran 50. Panggilan sistem terbuka telah digunakan untuk membaca konten dari file test.txt dan mengembalikannya ke deskriptor file. O_RDONLY telah digunakan untuk tujuan membaca. Baris berikutnya menunjukkan panggilan sistem baca untuk mengumpulkan 10 byte dari buffer dan mengembalikannya ke bilangan bulat n. Juga, perintah tulis telah digunakan untuk menulis konten atau data buffer ke dalam deskriptor file, yang merupakan layar keluaran Dalam kasus kami sekarang. Simpan file ini menggunakan Ctrl+S dan tutup dengan perintah Ctrl+X.

#termasuk
#termasuk
#termasuk
#termasuk

ke dalamutama()
{
ke dalamn,fd;
arangbuf[lima puluh];
fd=membuka(tes.txt,O_RDONLY);
n=Baca(fd,buf, 10);
menulis(1 ,buf, 10);

Mari kita kompilasi dulu kode C untuk panggilan sistem terbuka menggunakan perintah gcc di bawah ini.

$gccbaru.c

Sekarang saatnya untuk memeriksa output untuk kode C untuk panggilan sistem terbuka. Mari kita gunakan perintah a.out di bawah ini di shell. Outputnya menampilkan 10 byte dari konten file test.txt.

$./ke.keluar

Mari kita ambil contoh lain untuk menulis konten dari satu file ke file lain menggunakan panggilan sistem terbuka. Untuk membuat file C baru menggunakan perintah nano seperti di bawah ini.

$nano baru.C

Jadi ambil kode yang sama dengan sedikit perubahan di dalamnya. Kami telah mendefinisikan deskriptor file lain dalam kode sebagai fd1. Semua kodenya sama kecuali satu baris tambahan. Baris kedua terakhir dari kode telah menggunakan panggilan sistem terbuka untuk membuat file baru bernama target menggunakan O_CREAT dan mode, tulis-saja sebagai O_WRONLY. 0642 menunjukkan hak istimewa yang diberikan ke file ini. Dan file telah dikembalikan ke deskriptor file baru. Baris berikutnya telah menunjukkan perintah untuk menulis byte konten dalam buffer sesuai dengan deskriptor filenya. Simpan file dan tutup.

Jalankan perintah kompilasi gcc untuk men-debug file bahasa C.

$gcc baru.C

Untuk menampilkan output dari kode C, coba instruksi a.out di shell seperti di bawah ini. Tidak ada output karena output telah diarahkan ke file target yang baru dibuat.

$./ke.keluar

Mari kita periksa data target file menggunakan perintah cat. Output menunjukkan bahwa file tersebut memiliki 20 byte di dalamnya.

$target kucing

Kesimpulan

Dalam tutorial di atas, kami menjelaskan kepada Anda untuk menggunakan panggilan sistem terbuka dalam bahasa C dengan menggunakan kompiler gcc. Dengan bantuan berbagai contoh yang dijelaskan dalam panduan ini akan mengarahkan Anda untuk mengimplementasikan program yang Anda inginkan.