bolug bonner linux user group
news about wissen files archive hilfe suchen  

 

archive :: BoLUG

druckfassung

BoLUG

Re: "String"-Suche in Binaerdatei

To: bolug@xxxxxxxxxxx
Subject: Re: "String"-Suche in Binaerdatei
From: Christoph Lampert <chl@xxxxxxxxxxxxxxxx>
Date: Thu, 17 Oct 2002 12:30:56 +0200 (CEST)
On Thu, 17 Oct 2002, Michael Schuerig wrote:
>    char        *start, *pos;
>
> [...]
>     
>     if ( (start = mmap(0, statbuf.st_size, PROT_READ,
>                      MAP_FILE | MAP_SHARED, fdin, 0)) == (caddr_t) -1) {
>
> [...]
>
>    for (pos = start + 3; pos < start + statbuf.st_size; ++pos
>

Das bringt mich auf ein schoenes Problem, das sogar ein bisschen mit Linux
zu tun hat: 

fstat() liefert in st_size die Laenge in Bytes zurueck, das ist vom Typ
off_t   (bei mir in /usr/include/sys/types.h als 64bit, wegen >2GB Grenze)

pos ist als  char*   bei mir aber 32bittig und der doofe gcc3.2 von SuSE
8.1 kennt keine -m64 Option, um das zu aendern. 
Die Schleife mit  pos < start+statbuf.st_size  kann also gehoerig in die
Hose gehen, wahrscheinlich ohne, dass ich es gemerkt haette. 

Kann mir jemand erklaeren, wie man den Umgang mit >2GB Dateien und
Pointern sauber loest? 

Gruss,
Christoph 




 « Vorige im Thread  Dieser Thread  Nächste im Thread » 

 

seitenanfang


 

news about wissen files archive hilfe suchen  
kontakt letzte änderung: 17.10.2002