Pemrograman C

Cara Menggunakan Panggilan Sistem Terbuka di C

Cara Menggunakan Panggilan Sistem Terbuka di C

Panggilan sistem digunakan dalam distribusi Linux untuk menyediakan pintu di dalam OS Linux dan program-programnya. 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 "Buka" 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 panggilan sistem "Buka" 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 manpages-dev

Output untuk penyelesaian instalasi telah diberikan di bawah ini.

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

$ pria 2 terbuka

Halaman manual keluaran untuk panggilan sistem "Buka" telah ditunjukkan di bawah ini. Anda dapat melihat informasi tambahan tentang itu. Tekan tombol “q” untuk keluar.

Sintaks di atas menunjukkan tiga baris pertama dari perpustakaan yang diperlukan untuk ditambahkan untuk panggilan sistem. Ada tiga sintaks yang tersedia untuk panggilan sistem terbuka. Sintaks pertama menunjukkan "pathname," yang merupakan nama file yang akan dibuka. Parameter kedua, "flags," menunjukkan mode file, e.g., membaca atau menulis. 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 Ubuntu 20.04 distribusi Linux. Untuk itu, jalankan instruksi di bawah ini di shell untuk melakukannya.

$ sudo apt install gcc

Ini mengharuskan Anda untuk mengetuk "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 "Buka". Pertama, buka shell perintah dan buat file teks baru "test".txt” menggunakan perintah sentuh sederhana sebagai berikut:

$ tes sentuh.txt

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

$tes kucing.txt

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

$nano baru.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 kembalikan 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 output Dalam kasus kami sekarang. Simpan file ini menggunakan Ctrl+S dan tutup dengan perintah Ctrl+X.

#termasuk
#termasuk
#termasuk
#termasuk
int utama()

int n, fd;
char buf[50];
fd=buka(“tes.txt”, O_RDONLY);
n=baca(fd , buf, 10);
tulis(1 , buf, 10);

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

$gcc baru.c

Sekarang saatnya untuk memeriksa output untuk kode C untuk panggilan sistem terbuka. Mari kita gunakan di bawah ini a.perintah keluar di shell. Output menampilkan 10 byte dari isi file "test".txt".

$ ./Sebuah.di luar

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 terakhir kedua 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 a.keluar instruksi di shell seperti di bawah ini:. Tidak ada output karena output telah diarahkan ke file "target" yang baru dibuat.

$ ./Sebuah.di luar

Mari kita periksa data target file menggunakan perintah cat. Outputnya 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.

Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...
Instal Game Strategi OpenRA terbaru di Ubuntu Linux
OpenRA adalah mesin game Strategi Waktu Nyata Libre/Gratis yang membuat ulang game Westwood awal seperti Command & Conquer klasik: Red Alert. Mod yang...
Instal Dolphin Emulator terbaru untuk Gamecube & Wii di Linux
Dolphin Emulator memungkinkan Anda memainkan game Gamecube & Wii pilihan Anda di Komputer Pribadi (PC) Linux. Menjadi emulator game sumber terbuka da...