Bagaimana untuk Menentukan Saiz Fail dengan Amanah dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-21 07:46:10
asal
253 orang telah melayarinya

How to Reliably Determine File Size in C  ?

Menentukan Saiz Fail dalam C : Pendekatan Boleh Dipercayai dan Mudah Alih

Dalam C , mendapatkan saiz fail adalah operasi penting yang sering dihadapi dalam pengaturcaraan tugasan. Untuk mengenal pasti kaedah yang paling sesuai untuk mencapai matlamat ini, adalah penting untuk mempertimbangkan faktor seperti mudah alih, kebolehpercayaan dan kesederhanaan kod.

Satu pendekatan yang digunakan secara meluas ialah menggunakan kelas ifstream perpustakaan standard C. Dengan membuka fail dalam mod binari dan menentukan bendera makan, aliran input mencari ke penghujung fail. Selepas itu, fungsi ahli tellg() boleh digunakan untuk mendapatkan semula kedudukan semasa dalam fail, dengan berkesan memberikan saiz fail.

Contoh Kod:

#include <fstream>

std::ifstream::pos_type filesize(const char* filename) {
    std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary);
    return in.tellg(); 
}
Salin selepas log masuk

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini mempunyai potensi kaveat. tellg() tidak selalu melaporkan saiz fail dengan tepat pada platform tertentu. Untuk penyelesaian yang lebih mantap, kaedah alternatif, seperti mencari ke hujung fail menggunakan seekg() dan tellg() sebelum membuka fail dalam mod binari, mungkin diperlukan.

Coretan kod yang disediakan mengira dengan berkesan saiz fail berdasarkan anggapan bahawa fail boleh dibuka dan diakses. Mekanisme pengendalian ralat yang betul harus dilaksanakan dalam aplikasi gred pengeluaran untuk mengambil kira kemungkinan pengecualian semasa membuka atau membaca fail.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Saiz Fail dengan Amanah dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan