Die C-Sprache hat eine Zeitfunktion, die ich persönlich als unangenehm empfinde. Selbst wenn es schwierig zu handhaben ist, werde ich ruhig gehorchen, weil ich nicht die Fähigkeiten habe, mehr Dinge zu machen, aber ich werde eine Verbindung schreiben, weil es schwer zu merken war. ..
Vielleicht erhöhen wir die Windows Edition, die Uhr, den Timer usw.?
tl;dr(too long didn't read)
Ein Typ, der die Anzahl der Sekunden angibt, die seit 0:00:00 (UTC) am 1. Januar 1970 vergangen sind. Mit anderen Worten, Ich kenne Datum und Uhrzeit nicht, da es </ font> ist.
Strukturdefinition
#include <time.h>
time_t time(time_t *t);
Standardzeiterfassungsfunktion in C-Sprache. Es gibt zwei Möglichkeiten, es zu verwenden.
time()Notation
time_t current_time;
time(¤t_time); //Wenn Sie einen Puffer angeben, wird dieser dort abgelegt
or
time_t current_time = time(NULL); //Rückgabewert ist OK
Verwenden Sie diese Option, wenn Sie detailliertere Datumsinformationen wünschen.
Es war ein großer Erfolg, als ich das Datum in das Protokoll aufgenommen habe.
Sie können auch struct timespec
und struct tm
im Linux-Kernel konvertieren. ..
Definition
struct tm {
int tm_sec; /*Sekunden(0-60) */
int tm_min; /*Protokoll(0-59) */
int tm_hour; /*Zeit(0-23) */
int tm_mday; /*Datum im Monat(1-31) */
int tm_mon; /*Mond(0-11) */
int tm_year; /*Jahr- 1900 */
int tm_wday; /*Tag(0-6,Sonntag= 0) */
int tm_yday; /*Gesamtdatum innerhalb des Jahres(0-365,1. Januar= 0) */
int tm_isdst; /*Sommerzeit*/
};
Es wird verwendet, wenn Sie die Zeit in Zeichen ausdrücken möchten.
Tageszeiten->Zeichennotation
#include <time.h>
char *ctime(const time_t *timep); // Thread unsafe
char *ctime_r(const time_t *timep, char *buf); // Thread safe
ctime ()
Da ein Zeiger auf den internen Speicher zurückgegeben wird, liegt ein Thread-unsicheres Problem vor, bei dem sich der Empfänger ändert, wenn der interne Speicher neu geschrieben wird.ctime_r ()
Da der Ausgabepuffer von der Benutzerseite angefordert wird, ist der Wert auch dann garantiert, wenn er intern neu geschrieben wird.Das Konvertieren vom Typ time_t ist mühsam, und bin ich der einzige, der der Meinung ist, dass es in Ordnung ist, eine Funktion zu haben, die die struct tm
der aktuellen Zeit zurückgibt?
Ich bin sicher, ich weiß es einfach nicht.
Konvertierungsfunktion
#include <time.h>
// GMT
struct tm *gmtime(const time_t *timep); // Thread unsafe
struct tm *gmtime_r(const time_t *timep, struct tm *result); // Thread safe
//Ortszeit
struct tm *localtime(const time_t *timep); // Thread unsafe
struct tm *localtime_r(const time_t *timep, struct tm *result); // Thread safe
Konvertierungsfunktion
#include <stdio.h>
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
Wenn Sie es ausgeben möchten, können Sie es separat in die Funktion printf
einfügen.
Recommended Posts