← Back to team overview

sslug-teknik team mailing list archive

Perl - 32/64 bit signed/unsigned beregninger ??

 

Hej,

 Jeg har følgende i et bash-script:

 BYTESRCVD=`TIME=(date +%s); RRDRES=300; rrdtool fetch datafile.rrd
AVERAGE -r $RRDRES -e $RRD_END -s $RRD_START  | perl -lnaF: -e '$sum += 
$F[1]; END
{printf "%d\n",$sum * 300}'`

Problemet er, at det tilsyndeladende regner med 32-bit signed værdier....

F.eks. burde jeg få værdien 3357958001 ud for en datafil - men hvis jeg
checker via BYTESRCVD variablen, så får jeg en negativ værdi ud ???

Hvordan får jeg systemet til at kalkulere værdien korrekt ?? Det er måske et
problem med den stump perl-kode, der opsummerer outputtet fra rrdfetch ??

Mvh

Brian Ipsen





Follow ups