11 AĞUSTOS 2008, PAZARTESİ
Nasıl C dosyasının boyutunu belirliyorsunuz?
Nasıl bayt bir dosya boyutu, öğrenebilir miyim?
#include <stdio.h>
unsigned int fsize(char* file){
//what goes here?
}
CEVAP
12 AĞUSTOS 2008, Salı
NilObject temel alan kodu:
#include <sys/stat.h>
off_t fsize(const char *filename) {
struct stat st;
if (stat(filename, &st) == 0)
return st.st_size;
return -1;
}
Değişiklikler:
- Dosya adı bağımsız değişkeni
const char
yaptı. - Düzeltilmiş değişken adı eksik olan
struct stat
tanımı,. - Döner 7* *hata yerine boş bir dosya için belirsiz olacaktır
0
,.off_t
bu mümkün yani imzalı bir türüdür.
Eğer fsize()
hata mesajı yazdırmak istiyorsanız, bunu kullanabilirsiniz:
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
off_t fsize(const char *filename) {
struct stat st;
if (stat(filename, &st) == 0)
return st.st_size;
fprintf(stderr, "Cannot determine size of %s: %s\n",
filename, strerror(errno));
return -1;
}
32-bit sistemlerde -D_FILE_OFFSET_BITS=64
, off_t
aksi takdirde sadece değerlerini 2 GB tutacak seçeneği ile bu derleme. Bu SİSTEMİ Kullanarak" ayrıntılar için Large File Support in Linux bölüm.
Bunu Paylaş:
Nasıl FileİnputStream kullanırken idea...
Nasıl bir liste boyutunu almak için...
Nasıl rakamlar matplotlib ile çizilmiş...
Nasıl python ile dosya boyutunu kontro...
Nasıl Java metin editörleri için Eclip...