ich hab folgendes Programm geschrieben:
Code:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream.h>
#include <stdlib.h>
unsigned long Dateigroesse;
unsigned long Dateigroessealt;
float speed;
unsigned long GetFileSize(char *Name)
{
FILE *f = fopen (Name, "r+b");
fseek (f, 0, SEEK_END);
long filesize = ftell (f);
fseek (f, 0, SEEK_SET);
return filesize;
}
int main(int argc, char *argv[])
{
char *Name=argv[1];
int i=0;
cout <<"Dateigroesse momentan: " << GetFileSize(Name) << endl;
while(i==0)
{
sleep(1);
Dateigroesse=GetFileSize(Name);
cout <<"Dateigroesse momentan: " << Dateigroesse << endl;
speed=(Dateigroesse-Dateigroessealt)/1024;
Dateigroessealt=Dateigroesse;
if (speed>1000)
{
speed=speed/1024;
cout << speed << "mb/s" << endl;
}
else
{
cout << speed << "kb/s" << endl;
}
}
return EXIT_SUCCESS;
}
Das Programm soll jede Sekunde die Größe einer Datei mit der Größe der Datei vor einer Sekunde vergleichen und dadruch die Geschwindigkeit mit der sie geschrieben wird ermitteln.
es funktioniert auch, nur wenn ich es als User statt als root starten möchte bekomme ich einen Speicherzugriffsfehler ... genauso wenn ich es mit einer Datei starte, welche nicht vorhanden ist.
Hat da jmd. vielleicht eine Idee?
Lesezeichen