Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 4.076 pregleda

Najnovija ↓

Large File Support (>2GB) 16.03.2006. u 18:17 · pre 251 mesec #1
pozdrav ljudi,

pokusavam da izvucem zadnjih par megabajta iz jednog velikog fajla (>2GB).

OS je RedHat, kernel 2.4.21-32.0.1.ELsmp (viseprocesorska masina, Intel Xeoni na 3.6GHz).

fajl sistem na toj particiji je ext3 (kazu da uredno podrzava LFS). glibc > 2.3.2.

svi fajlovi u tom diru imaju -rw-r--r-- dozvole.
probam kao root da otvorim file i dobijem permission denied za fajl veci od 2GB
(manji od 2GB se uredno otvori).

u cemu je caka? tj. kako da otkrijem u cemu je caka :)

evo kako izgleda deo koda (varijanta sa fopen/fopen64 isto ne radi):

Code:


#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

#define BUF_SIZE 8192

int main(int argc, char * argv[])
{
    int log, extract;
   
...

    if ((log = open(argv[1], O_RDONLY | O_LARGEFILE)) == -1) {
    perror("open");
    return -1;
    }

...

    return 0;
}



milan
Re: Large File Support (>2GB) 16.03.2006. u 22:20 · pre 251 mesec #2
Necu puno ulaziti u tvoj problem, ali evo ti cinjenica:
Ako je najveci moguci broj na tvom kompajleru 32-bitni onda je najveca vrijednost int-a 2 GB. Onda je nemoguce indexirati povise ta dva GB.
Re: Large File Support (>2GB) 16.03.2006. u 23:29 · pre 251 mesec #3
Citat:
NrmMyth: Necu puno ulaziti u tvoj problem, ali evo ti cinjenica:
Ako je najveci moguci broj na tvom kompajleru 32-bitni onda je najveca vrijednost int-a 2 GB.
Onda je nemoguce indexirati povise ta dva GB.


da, da, znam da je 2^32 = 2GB... ali svuda pricaju kako je i na 32bitnim platofmama
moguce citati i pisati fajlove vece od 2GB (kako bi onda mysql imala tabele velicine 4GB...)

evo gde sam gledao (izmedju ostalog):

http://www.uwsg.iu.edu/hypermail/linux/kernel/0011.2/0042.html (linux kernel arhiva)

http://www.suse.de/~aj/linux_lfs.html

http://linuxgazette.net/issue67/tag/13.html

http://dev.mysql.com/doc/refman/5.0/en/table-size.html

itd.


Re: Large File Support (>2GB) 17.03.2006. u 04:58 · pre 251 mesec #4
Ja ti ne mogu puno ulaziti u tu temu, jer ne znam puno o tome.

Unsigned int = 2^32 = 4 GB

Po meni ovisi sve o tipu "size_t" ako govorimo o standardnom C/C++.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme