Halo dan selamat datang kembali.
Kita berada di bagian baru.
Bagian ini adalah semua tentang input dan output file, menulis dan membaca dari file.
Kita akan berkonsentrasi pada file teks, tetapi kita juga akan sedikit membahas tentang file biner.
Dalam kuliah ini, saya hanya ingin memberikan gambaran umum, memberi tahu Anda apa itu file, dan memberi tahu Anda bagaimana penggunaannya
yang baik untuk menyimpan data persisten.
Jadi, sampai titik ini, semua data yang diakses program kita adalah melalui memori.
Kita sudah akrab dengan konsep variabel, struktur, apa pun itu.
Hapus semua data yang digunakan program Anda dalam memori.
Dan alasan mengapa disimpan dalam memori adalah karena memori sangat cepat dan Anda dapat mengaksesnya dengan
cepat untuk melakukan perhitungan.
Anda melakukan siklus fetch, execute, semua hal itu.
Jadi ruang lingkupnya, tetapi juga terbatas karena ruang lingkup dan variasi aplikasi kita,
jika hanya menggunakan memori, itu akan agak terbatas.
Kita tahu bahwa memori akan hilang ketika program hilang, dan itu bisa sangat membatasi.
Semua aplikasi bisnis yang serius memerlukan lebih banyak data daripada yang muat ke dalam memori utama.
Memori utama juga sangat kecil, sampai ke atas.
Dan saat ini Anda bisa mendapatkan banyak memori, 1630 hingga 32 gigabyte.
Tetapi di masa lalu, dan terutama pada perangkat tertanam, Anda tidak memiliki RAM sebanyak itu dan akibatnya aplikasi Anda
sangat terbatas karena ruang dan ukurannya.
Anda benar-benar hanya ingin menyimpan variabel dan hal-hal seperti itu di memori utama.
Hal ini juga karena memori utama hilang ketika program hilang.
Anda tidak bisa memiliki data apa pun yang disimpan secara persisten di seluruh reboot.
Jadi semuanya tergantung pada kemampuan untuk memproses data yang persisten dan disimpan pada perangkat eksternal
seperti hard disk drive program-program besar ini.
Jadi, Anda ingin memiliki kemampuan ini untuk menyimpan pada hard drive.
Ini sedikit lebih lambat, tetapi Anda dapat menyimpan banyak data di sana dan program besar perlu menyimpan
banyak data.
C menyediakan banyak fungsi dalam standar file header untuk menulis dan membaca dari perangkat eksternal.
Anda tidak perlu menulis kode Anda sendiri untuk membaca dan menulis file, tetapi Anda dapat melihat keuntungan
yang ditawarkan aplikasi yang memiliki kemampuan untuk menyimpan data untuk waktu yang lebih lama.
Banyak keuntungan.
Perangkat eksternal yang akan Anda gunakan untuk menyimpan dan mengambil data biasanya adalah hard drive
disk drive.
Namun demikian, fungsi file header yang akan kita bicarakan, dapat Anda gunakan pada perangkat penyimpanan eksternal apa
pun.
Jadi, Anda bisa menggunakannya pada drive USB, Anda bisa menggunakannya pada perangkat eksternal apa pun yang menyimpan data dan SSD drive
apa pun dengan semua contohnya.
Sampai sekarang, data apa pun yang dimasukkan pengguna akan hilang.
Setelah program berakhir, ini disebut sebagai memori volatil.
Setiap kali Anda mendengar istilah vol time memory, itu berarti bahwa memori tidak persisten atau data tidak
persisten.
Ini akan hilang apabila program berakhir atau jika mesin melakukan reboot.
Jadi, jika pengguna ingin menjalankan program dengan data yang sama, dia harus memasukkannya lagi setiap kali agar data
tersebut dipulihkan.
Ini sangat merepotkan.
Ini membatasi pemrograman.
Dan lagi, ini adalah memori yang mudah menguap.
Apabila Anda menyimpan barang dalam file dan Anda menyimpannya pada hard drive, ini adalah penyimpanan permanen.
Itu masih ada di sana.
Bahkan ketika Anda telah me-reboot mesin atau ketika program Anda tidak berjalan.
Itu disebut sebagai memori nonvolatile karena tetap berada di sekitar file, dapat menyimpan data yang tidak mudah menguap dan
biasanya disimpan pada disk atau saat ini solid state drive dan SSD.
Ini adalah bagian penyimpanan yang diberi nama dan standar stud IO adalah file yang berisi penggunaan informasi agar dapat
membaca dan menulis ke file-file tersebut.
Tetapi kita akan menggunakan konsep penulisan dan pembacaan data dari file untuk penyimpanan
permanen, dan Anda akan melihat bagaimana aplikasi Anda menjadi jauh lebih berguna, jauh lebih kuat, jauh lebih skalabel, karena
sekarang kita memiliki kemampuan untuk menyimpan data dalam jumlah besar dan kita juga tidak perlu khawatir tentang data yang akan
hilang setiap kali program berakhir atau komputer melakukan reboot.
Jadi, akan sangat, sangat menguntungkan untuk menggunakan file.
Sebuah file di dalam sistem operasi Linux atau sistem operasi Windows disimpan dengan cara tertentu.
Tetapi sejauh C berjalan, bahasa pemrograman, itu hanya urutan byte di setiap byte dapat dibaca secara
individual.
Hal ini sesuai dengan struktur file di Unix, tetapi tidak harus demikian.
Ini hanya akan membuat perbedaan ketika Anda membaca file teks dan jendela, karena Anda mungkin
memiliki karakter tambahan yang harus Anda khawatirkan mengenai ukuran, tetapi itu hanya urutan byte.
Jadi, jika Anda memiliki file teks dan memiliki lebih banyak byte, Anda masih bisa membaca byte tersebut.
Anda hanya perlu memahami apa yang diwakili oleh byte tersebut.
Jadi, seperti inilah bentuk sebuah file dan bagaimana kita akan membacanya dan menulis ke file tersebut menggunakan bahasa pemrograman
C.
Ini hanya serangkaian byte dengan offset yang berbeda.
Awal file akan menjadi nol, dan kemudian Anda selalu dapat menemukan posisi yang berbeda
dalam file.
Bisa empat, bisa empat kali sepuluh dua, bisa 100 byte ke dalamnya.
Dan kemudian Anda memiliki akhir file dan akhir file biasanya ditandai dengan penanda khusus yang disebut
EOF dan file.
Jadi, file memiliki awal dan akhir serta posisi saat ini.
Posisi saat ini didefinisikan begitu banyak byte di awal.
Posisi saat ini adalah tempat di mana tindakan file apa pun akan dilakukan.
Anda akan menulis atau membaca pada posisi itu.
Dan kita juga akan berbicara tentang beberapa fungsi di mana Anda dapat bergerak untuk memindahkan posisi saat ini ke mana pun yang
Anda inginkan dalam file.
Bahkan di bagian akhir, jika Anda ingin membaca di bagian akhir atau sampai akhir.
Ada dua jenis file.
Ada file teks dan file biner.
File teks adalah data yang ditulis sebagai urutan karakter yang disusun sebagai baris.
Setiap baris diakhiri dengan baris baru, dan data teks bisa bervariasi dari satu sistem ke sistem lainnya, tergantung pada bagaimana karakter
diinterpretasikan.
Jadi misalnya, pada Windows di DOS, setiap baris memiliki carriage return dan line feed, jadi backslash R
dan backslash N.
Jadi, ketika Anda membaca data atau menulis data, Anda harus memahami hal ini karena formatnya sedikit
berbeda.
Tetapi di Linux Anda tidak memiliki backslash.
R Jadi, Anda harus memahami bagaimana data teks ditulis, meskipun disusun berdasarkan baris dan merupakan serangkaian
byte, data biner ditulis sebagai serangkaian byte persis seperti yang muncul dalam memori.
Jadi contoh file yang memiliki data biner adalah data.
File kami seperti data gambar atau file biner pengkodean musik tidak dapat dibaca.
Jika Anda mencoba membawanya dalam editor teks karena mereka hanya byte, kita akan berkonsentrasi pada file
teks di bagian ini, tetapi Anda dapat menulis data apa pun yang Anda suka ke file.
Anda bisa menuliskannya sebagai serangkaian byte dan bagaimana byte itu muncul dalam memori, atau Anda bisa menulisnya sebagai teks.
Tetapi, setelah berkas benar-benar ditulis, berkas itu hanya akan terdiri atas serangkaian byte, meskipun
direpresentasikan sebagai teks.
Anda dapat melihat file teks dalam editor, yang membuatnya lebih mudah dibaca.
Anda harus memahami format file untuk membacanya dan inilah yang saya sebutkan
jika Anda berjalan pada DOS Windows atau Linux di mana Windows mungkin memiliki karakter tambahan ketika menulis
data.
Jadi, urutan 12 byte dalam file biner bisa jadi 12 karakter, bisa jadi 12 delapan kali delapan bit tanda bilangan
bulat atau 12 bilangan bulat tidak ditandatangani.
Kebakaran biner khususnya rumit karena mereka hanya menyimpan Watson sebagai memori yang jelas.
Jadi, dalam mode biner, setiap bit file dapat diakses.
Tetapi untuk membaca sesuatu dari file, Anda harus memahami apa yang ada di sana sejauh data dan bagaimana data itu
disimpan.
Dan itu mungkin tergantung pada sistem apa yang Anda jalankan.
Dan itu juga akan tergantung apakah itu teks atau biner.
Aliran.
Program C secara otomatis terbuka pada tiga file atas nama Anda.
Stream dapat mewakili file, tetapi stream adalah istilah yang lebih umum yang dapat mewakili segala jenis input.
Jadi, ini bisa mewakili keyboard, bisa mewakili konsol, bisa mewakili file, bisa
mewakili soket.
Jika Anda terbiasa dengan jaringan stream adalah istilah yang lebih umum, dan ada tiga stream yang dibuka secara
otomatis untuk Anda dalam bahasa pemrograman C.
Yang pertama adalah input standar, dan ini adalah perangkat input normal dari sistem Anda.
Biasanya secara default, itu adalah keyboard.
Kita telah menggunakan input standar ketika kita melakukan scan F, tetapi Anda sebenarnya bisa menggunakan scan off untuk membaca
dari file.
Jika Anda mengubah aliran input, mungkin Anda mengubah aliran input ke output standar file ini biasanya
ditampilkan di layar, biasanya melalui konsol.
Standard error juga ada di layar, tetapi Anda biasanya harus mengalihkannya untuk melihatnya dengan
menggunakan ampersand tiga atau semacamnya.
Tetapi ini adalah tiga output yang saya sebutkan.
Standard input adalah file yang dibaca oleh gitar dan scan F Standard output digunakan oleh output kita dan print F
kita terutama telah menggunakan printf.
Anda juga bisa mengarahkan file pada sistem untuk dikenali sebagai output input standar.
Ini adalah pengalihan.
Ini adalah konsep sistem operasi di mana Anda dapat mengalihkan data, mengirim output ke file misalnya, atau mengirim
input, mendapatkan input dari file sebagai lawan dari standar.
Di sinilah Anda bisa menggunakan simbol kurang dari atau lebih besar dari.
Tujuan dari output kesalahan standar adalah untuk menyediakan tempat yang berbeda secara logis untuk mengirim pesan kesalahan.
Jadi, ini agak terpisah meskipun ditampilkan ke layar.
Untuk mengaksesnya, Anda harus memiliki perintah khusus.
Stream adalah representasi abstrak dari sumber eksternal atau tujuan data.
Inilah mengapa ini lebih umum daripada, katakanlah, file.
Keyboard.
Baris perintah pada file tampilan Anda pada disk.
Itu semua adalah contoh bagaimana Anda bekerja dengan stream.
Streams akan menjadi jauh lebih penting ketika Anda mulai mempelajari C++.
Pustaka C menyediakan fungsi-fungsi untuk membaca dan menulis ke atau dari stream data, sehingga Anda bisa menggunakan fungsi input
output yang sama untuk membaca dan menulis perangkat eksternal apa pun yang dipetakan ke stream.
Jadi, itulah sebabnya saya menyebutkan bahwa Anda dapat menggunakan scan F untuk membaca dari keyboard.
Anda juga bisa menggunakan scan F untuk membaca dari file.
Itu semua tergantung pada inputnya, ke mana alirannya mengarah.
Jadi, fungsi-fungsi ini sangat, sangat berguna dan sangat, sangat fleksibel untuk melakukan hal ini.
Jadi ini hanyalah gambaran umum tingkat tinggi tentang apa itu file dan mengapa kita akan menggunakannya, bagaimana file adalah data
persisten, itu adalah memori nonvolatile.
Itu tetap ada, kita akan menggunakannya dan kita akan menggunakan file header IO standar untuk membaca
dan menulis ke sana ketika kita perlu menyimpan data untuk program kita dan program kita akhirnya menjadi jauh lebih kuat,
jauh lebih dapat digunakan, jauh lebih fleksibel.
Jadi dalam kuliah kita berikutnya, kita akan berbicara tentang implementasi aktual menggunakan fungsi-fungsi dalam
header IO standar.
Terima kasih.