Linux-Befehle im C++ Program..!
-
lagalopex schrieb:
PS: Mein Nick heißt lagalopex... das alle immer erst an legal denken müssen
Sorry, hab es falsch abgeschreieben..!
DANKE dir SEHR für deine Antwort. Habe auch endlich verstnaden was das man mit struct gemeint hat, also wie man das benutzen kann.Könnte man daraus aber das volle Datum entziehen und nicht die Sekunden..?
-
Bonafide schrieb:
Könnte man daraus aber das volle Datum entziehen und nicht die Sekunden..?
lagalopex schrieb:
Für die Ausgabe kann man dann die Zeiten noch mit man: localtime und man: strftime ins gewünschte Format bringen.
Ein Beispiel steht unten auf der manpage von strftime.
-
Also so wie ich das verstanden habe, geht die Umwandlung so:
struct tm *date; date=localtime(&stats.st_mtime);
Ist der Gedanke richtig..?
Oder total falsch..?
Und wenn es richtig sein sollte, wie kann ich denn das "printen"..?
-
Bonafide schrieb:
Also so wie ich das verstanden habe, geht die Umwandlung so:
struct tm *date; date=localtime(&stats.st_mtime);
Ist der Gedanke richtig..?
ja
Bonafide schrieb:
Und wenn es richtig sein sollte, wie kann ich denn das "printen"..?
Welche Variablen enthält denn die struct vom Typ tm?
Ein bischen mehr Eigeninitiative wäre wirklich angebracht und vielleicht einfach mal etwas rumprobieren...
-
lagalopex schrieb:
Ein bischen mehr Eigeninitiative wäre wirklich angebracht und vielleicht einfach mal etwas rumprobieren...
Naja rumprobiert habe ich schon..!
lagalopex schrieb:
Welche Variablen enthält denn die struct vom Typ tm?
struct tm {
int tm_sec; /* seconds /
int tm_min; / minutes /
int tm_hour; / hours /
int tm_mday; / day of the month /
int tm_mon; / month /
int tm_year; / year /
int tm_wday; / day of the week /
int tm_yday; / day in the year /
int tm_isdst; / daylight saving time */
};
Ich hätte das ja auch so geschreiben:struct tm *date; date=localtime(&stats.st_mtime); printf("%d-%d-%d %d:%d:%d\n",*date.tm_year,*date.tm_mon,*date.tm_day,*date.tm_hour,*date.tm_min,*date.tm_sec);
Aber das funktioniert ja nicht, also ist hier irgendwo ein gedankenfehler bei dem *date.tm_year...
Beim Compilen kommt ja immer der Fehler:
request for member ‘tm_year’ in something not a structure or union...usw..!
-
Bonafide schrieb:
lagalopex schrieb:
Ein bischen mehr Eigeninitiative wäre wirklich angebracht und vielleicht einfach mal etwas rumprobieren...
Naja rumprobiert habe ich schon..!
Dann schreibs das nächste mal hinzu.
Bonafide schrieb:
Ich hätte das ja auch so geschreiben:
struct tm *date; date=localtime(&stats.st_mtime); printf("%d-%d-%d %d:%d:%d\n",*date.tm_year,*date.tm_mon,*date.tm_day,*date.tm_hour,*date.tm_min,*date.tm_sec);
Dann schau dir nochmal die Operatoren (Priorität) an und wie man speziell mit Zeigern auf struct umgehen kann:
(*date).tm_year date->tm_year
Sollte beides gehen
-
Thx, hat funktioniert..!
Er zeigt das Datum richtig an, nur dass da immer das falsche jahr rauskommt und der falsche Monat, Uhrzeit wird korrekt angezeigt..!
Also zum Beispiel für die Datei "erga" wenn ich "ls -lu erga" im Terminal tippe kommt folgendes raus:
-rwxr-xr-x 1 Bonafide users 10809 15. Mär 01:38 ergaMit dem Testprog, wo printf so ausieht:
printf("Datum: %d-%d-%d %d:%d:%d\n",(*date).tm_year,(*date).tm_mon,(*date).tm_mday,(*date).tm_hour,(*date).tm_min,(*date).tm_sec);
wird folgendes angezeigt:
Datum: 108-2-15 1:38:49
wobei ja der erste Wert 2008 hiessen sollte und nicht 108 und der zweite Wert 3 und nicht 2.
Wo ist denn da der Fehler..?
Komisch finde ich auch das ja wie schon oben "gezeigt" bei dem "ls -lu erga"-Befehl 10809 15. Mär 01:38 erga
angezeigt wird und nicht
2008 15. Mär 01:38 erga .
Es sei denn die Zahl 10809 ist was anderes und hat mit dem Datum nix tun..!
-
Guck doch verdammt noch mal in die man-pages!!!
Die Elemente der Struktur tm sind:
[...]
tm_mon
Die Anzahl der Monate seit Januar, im Bereich 0 bis 11.
tm_year
Die Anzahl der Jahre nach 1900.Bonafide schrieb:
Komisch finde ich auch das ja wie schon oben "gezeigt" bei dem "ls -lu erga"-Befehl 10809 15. Mär 01:38 erga
angezeigt wird und nicht
2008 15. Mär 01:38 erga .
Es sei denn die Zahl 10809 ist was anderes und hat mit dem Datum nix tun..!Das ist die Dateigröße
-
lagalopex schrieb:
Guck doch verdammt noch mal in die man-pages!!!
Hast recht, stand alles drin, habe zu voreilig im forum geschrieben..!
Sry und nochmals DANKE..!