SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • echifitness

    echifitness

    9 Kasım 2008
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • waterfairy17

    waterfairy17

    9 Aralık 2007