Ich habe mich neulich wieder mal an den PC gesetzt und habe versucht, ein kleines Programm in C++ zu schreiben. Eigentlich wollte ich nur mal sehen, was ich alles noch kann, doch leider scheinen mir die Informatikstunden in der HTL Innsbruck relativ überflüssig gewesen zu sein…
Ohne etwas Recherche*) hätte ich das Programm - das dir im Übrigen nur die Dateigröße einer als Argument mitgegebenen Datei anzeigt - niemals zustande gebracht.
Hier der Code:
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char * argv[])
{
long begin,end;
fstream theFile (argv[1], ios::in);
begin = theFile.tellg();
theFile.seekg (0, ios::end);
end = theFile.tellg();
theFile.close();
cout << "size of file \"" << argv[1] << "\": ";
cout << (end-begin) << " bytes (";
cout << (end-begin)/1024 << " kilobytes)" << endl;
return 0;
}
Das Ganze sieht dann so in Aktion aus:
user@all-this-blame ~ $ ./test /etc/fstab
size of file "/etc/fstab": 260 bytes (0 kilobytes)
oder so:
user@all-this-blame ~ $ ./test /www/fun/eso.tar.bz2
size of file "/www/fun/eso.tar.bz2": 70013185 bytes (68372 kilobytes)
Es ist jetzt klar, dass hier die übergebenen Parameter nicht überprüft werden und einfach so - wie sie eben sind - in den Programmcode fließen - Sicherheitsrisiko hin oder her…
Im Grunde bin ich froh, dass ich den einfachen Teil hier verstanden habe - jetzt muss ich ihn mir nur noch merken ;-)
Ich habe mich auch schon gefragt, ob ich vielleicht noch etwas in Assembler schreiben kann, aber den Test werde ich mir wohl lieber sparen *gg*
*)
1) http://courses.cs.vt.edu/~cs2604/fall00/binio.html
2) http://www.cplusplus.com
3) http://tutorial.schornboeck.net/inhalt.htm