Menjelaskan bagaimana programmer C membuat, membuka, dan menutup file teks, atau file biner.
File, berarti serangkaian byte, apakah itu file teks atau file biner, Bahasa C, tidak hanya menyediakan akses ke fungsi tingkat atas, tetapi juga menyediakan panggilan (OS) yang mendasarinya untuk memproses file di perangkat penyimpanan . Bab ini akan menjelaskan panggilan penting dalam pengelolaan dokumen.
file terbuka
Biasanya menggunakan fungsi fopen() untuk membuat file baru atau membuka file yang sudah ada, panggilan ini menginisialisasi objek bertipe FILE yang berisi semua informasi yang diperlukan untuk mengontrol aliran. Berikut adalah prototipe pemanggilan fungsi ini:
FILE *fopen ( const char * nama file, const char * mode );
Di sini nama file adalah string untuk memberi nama file, nilai mode akses dapat berupa salah satu dari nilai berikut:
pola | keterangan |
r | Buka file teks yang ada yang memungkinkannya dibaca. |
w | Buka file teks yang memungkinkan penulisan ke file tersebut. Jika file tidak ada, file baru akan dibuat. Di sini, program Anda menulis konten dari awal file. Jika file tersebut ada, file tersebut akan dipotong hingga panjangnya nol dan ditulis ulang. |
a | Buka file teks dan tulis ke file dalam mode penambahan. Jika file tidak ada, file baru akan dibuat. Di sini, program Anda menambahkan konten ke file yang sudah Anda miliki. |
r+ | Buka file teks yang memungkinkan Anda membaca dan menulis file. |
w+ | Buka file teks yang memungkinkan Anda membaca dan menulis file. Jika file sudah ada, file akan dipotong hingga panjangnya nol, dan jika file tidak ada, file baru akan dibuat. |
a+ | Buka file teks yang memungkinkan Anda membaca dan menulis file. Jika file tidak ada, file baru akan dibuat. Pembacaan dimulai di awal file, dan penulisan hanya dalam mode penambahan. |
Jika diproses file biner, gunakan mode akses berikut untuk menggantikan yang di atas:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
berkas tertutup
Untuk menutup file, silakan gunakan fungsi fclose(). Prototipe fungsinya adalah sebagai berikut:
int fclose ( FILE *fp );
- Jika file berhasil ditutup, fungsi fclose() mengembalikan nol, dan jika kesalahan mengembalikan EOF. Faktanya, fungsi ini menghapus data dari buffer, menutup file, dan melepaskan semua memori yang digunakan untuk file tersebut. EOF adalah konstanta yang didefinisikan dalam file header stdio.h
Pustaka standar C menyediakan berbagai fungsi untuk membaca dan menulis file berdasarkan karakter atau sebagai string dengan panjang tetap.
Menulis ke file
Berikut adalah fungsi paling sederhana untuk menulis karakter ke aliran:
int fputc ( int c , FILE *fp );
Fungsi fputc() menulis nilai karakter parameter c ke dalam aliran keluaran yang ditunjuk oleh fp. Jika penulisan berhasil, ia mengembalikan karakter tertulis dan EOF jika terjadi kesalahan. Anda dapat menggunakan fungsi berikut untuk menulis string yang diakhiri dengan null ke aliran:
int fputs ( const char *s , FILE *fp );
Fungsi fputs() menulis string s ke aliran keluaran tempat fp menunjuk. Jika penulisan berhasil, ia mengembalikan nilai non-negatif dan EOF jika terjadi kesalahan. Anda juga dapat menggunakan fungsi int fprintf (FILE * fp, const char * format,...) menulis string ke file. Coba contoh berikut:
Catatan:Pastikan Anda memiliki direktori tmp yang tersedia, dan jika tidak ada, Anda harus membuatnya di komputer terlebih dahulu.
/tmp biasanya merupakan direktori sementara pada sistem Linux. Jika Anda menjalankan sistem Windows, Anda perlu memodifikasinya ke direktori yang ada di lingkungan lokal, seperti: C:\tmp, D:\tmp, dll.
contoh hidup
#termasuk
Ketika kode di atas dikompilasi dan dieksekusi, itu membuat file test.txt baru di direktori /tmp. Dan menulis ke dua baris menggunakan dua fungsi berbeda. Mari kita baca file ini selanjutnya.
Baca filenya
Berikut ini adalah fungsi paling sederhana untuk membaca satu karakter dari sebuah file:
int fgetc ( FILE * fp );
Fungsi fgetc() membaca karakter dari file input yang ditunjuk oleh fp. Nilai yang dikembalikan adalah karakter baca dan EOF jika terjadi kesalahan. Fungsi berikut memungkinkan Anda membaca string dari aliran:
char *fgets ( char *buf , int n , FILE *fp );
Fungsi fgets() membaca n-1 karakter dari aliran input yang diarahkan oleh fp. Ini menyalin string yang dibaca ke buffer buf dan menambahkan karakter nol di akhir untuk mengakhiri string.
Jika fungsi ini menemukan karakter garis putus-putus '\ n' atau EOF akhir file sebelum membaca karakter terakhir, maka hanya dikembalikan ke karakter yang dibaca, termasuk jeda baris. Anda juga dapat menggunakan fungsi int fscanf (FILE * fp, const char * format,...) untuk membaca string dari file, tetapi berhenti membaca ketika menemukan spasi pertama dan jeda baris.
contoh hidup
#termasuk
Ketika kode di atas dikompilasi dan dijalankan, ia membaca file yang dibuat di bagian sebelumnya, menghasilkan hasil sebagai berikut:
1: Ini 2: sedang menguji fprintf...
3: Ini sedang menguji fput...
Pertama, metode fscanf() hanya membaca This .karena menemukan spasi di belakang. Kedua, panggil fungsi fgets() untuk membaca bagian yang tersisa hingga akhir baris. Terakhir, panggil fgets() untuk membaca baris kedua secara lengkap.
Fungsi I/O biner
Dua fungsi berikut digunakan untuk input dan output biner:
ketakutan size_t (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );
Kedua fungsi tersebut membaca dan menulis untuk blok penyimpanan-biasanya array atau struktur.
Di atas tentang pembacaan dan penulisan file C adalah milik HDV Phoelectron Technology Ltd., sebuah operasi teknis perangkat lunak. Dan perusahaan untuk peralatan terkait jaringan (seperti: ACONU/ komunikasiONU/ cerdasONU/ seratONU, dll.) telah menyatukan tim perangkat lunak yang kuat, untuk setiap pelanggan menyesuaikan permintaan eksklusif yang membutuhkannya, juga membuat produk kami lebih cerdas dan canggih.