Der code läuft, wie kann ich auf beispielweise die Stunden zugreifen? Ganz klar ist mir der pintln auch nicht, ich hätte erwartet dass in "local" ein string enthalten ist, aber irgendwie wir er ja dann zerteilt. Ich hätte gern einfach nur die Zahlenwerte (integer) ...
timeval tv = { rtc, 0 };
settimeofday(&tv, nullptr);
}
Auch die Zeit setzen, lieber aus Einzelwerten. Habe mir mal die Sekunden seit 1970 für gerade eben ausgerechnet und eingesetzt... geht auch wie erwartet, aber ich würde lieber Tag, Monat, Jahr etc... übergeben und auch zurück bekommen...
Das ist nicht das Problem, ich kenne diese Strukturen nicht.
time_t dürfte nur ein long sein... logischerweise
time(&now); scheint mir Überflüssig, da der Rückgabewert nicht ausgewertet wird und es ja auch nicht ändert da die Sekunden seit 1970 ja in time_t stehen, verstehe ich den Sinn dieser Zeile Code nicht. Außer time holt den Wert nach now...
tm -> keine Ahnung, aber das hier hilft mir wohl weiter...
Naja, dieses Zeitgedoense ist halt so gewachsen (mit der Zeit). Welche structs jetzt wie aufgebaut sind, steht in den man-pages zu den Funktionen. Oder in jedem gut sortierten Internet.
Weißt Du, wie und wo Du das nachsehen kannst? Also ohne Internet. (Internet ist hier zwar auch gut und hilft beim Verständnis, doch der erste Schritt muss immer lokal in Deiner IDE möglich sein)
(Gilt auch für die anderen Strukturen und Funktionen)
Ich brauche eigentlich nur etwas das nach 24 Stunden true wird,
24 Stunden "nach was"?
Evtl. kannst du dir das ganze struct tm sparen, und einfach ausnutzen, dass 24 Stunden 24×60 Minuten und damit 24×60×60 Sekunden sind. time_t enthält Sekunden. Kann man einfach vergleichen, "(now > ziel_zeit_24h)" wird dann true...
Jo, ich habe die noch nie genutzt und fand das gefundene Beispiel einfach sehr "gewöhnungsbedürftig", Thema UNIX Sekunden ab 1970 ist mir bekannt und ja auch kein Hexenwerk...
Jo, ich habe die noch nie genutzt und fand das gefundene Beispiel
einfach sehr "gewöhnungsbedürftig", Thema UNIX Sekunden ab 1970 ist mir
bekannt und ja auch kein Hexenwerk...
Aber Ihr wisst schon, dass ab 19-Jan-2038 03:14:07 Uhr UTC Dunkeltuten ist und der Rechner zurueck zum 01-JAN-1970 gesetzt wird?
Richtige Betriebssysteme (TM) wie OpenVMS haben vierstellige Jahreszahlen, der naechste Overflow ist am 31-DEC-9999. Das ist mal vorausschauend programmiert.
Übrigens geht der (32-Bit) time_t Überlauf nicht auf 0, sondern auf −2.147.483.648.
Ist ein signed Wert.
d.H. es wird nicht nach 1970 gesprungen, sondern nach 1901.
Ich hab mir VS-Code und die entsprechenden Erweiterngen installiert (Platformio usw). Da drück ich F12, sehe nach und mit Alt-links wieder zurück. Find ich praktisch und bin begeistert. Geht das bei Dir nicht? Nahezu jede IDE bietet diese Funktionalität, die die Definitionen "hineinzusehen", dennke ich. Nur eben andere Tasten. Bei VSCode ists F12.
Nahezu jede IDE bietet diese Funktionalität, die die Definitionen
"hineinzusehen", dennke ich.
Tja, denkst Du. Die von manchen so innig geliebte Arduino-IDE in der Version 1.x kann das nicht, das haben sie erst der Version 2.x beigebracht, die aber wird von vielen abgelehnt, weil zu ... irgendwas.