Linux Strptime -Systemaufruf in C

Linux Strptime -Systemaufruf in C
Die Funktion von StrPTime () verwendet die vom Format gegebene Syntax, um die durch Puffer verwiesene Zeichenzeichenfolge in Daten zu konvertieren, die in der Struktur „TM“ aufgestellt werden, auf die durch „TM“ verwiesen wird, aufgenommen. Hier enthält das Format eine oder verschiedene Richtlinien, aber nicht Null. Entweder eine Konvertierungsspezifikation oder ein regulärer Charakter (nicht% oder Weißraum) finden Sie in einer Richtlinie. Jede Spezifikation von Konvertierungen besteht aus einem „%“ -Scharakter, der ein oder mehrere Konvertierungszeichen umfasst, die den Ersatz definieren, der vorgenommen werden soll, der angibt. Um zu überprüfen, ob die Funktion wie erwartet ausgeführt wird, müssen sowohl das Format als auch der Puffer einen weißen Raum oder einen anderen Trennzeichen haben. Um die erste Zahlenkonvertierung vom Konvertieren von Zeichen zu verhindern, die dem zweiten Konvertierungsspezifizierer entsprechen.

Beispiel 1:

Folgen wir dem folgenden Beispiel, um die Funktionalität der Strptime -Funktion in der C -Sprache anzuzeigen. Hier haben wir das Jahr mit der Strptime -Funktion gedruckt. Wie wir im Jahr „2022“ sind, wird die Strptime -Funktion in diesem Jahr ausgegeben. In der Programmdatei von C haben wir die Header -Datei „Zeit eingeben.H ”, durch die wir die Datums- und Uhrzeitinformationen erhalten können. Danach haben wir die Funktion im Main () des Programms festgelegt.

Als nächstes haben wir den Puffer für die Zuweisung von Platz für neue Daten erstellt. Der Puffer ist als „Ergebnis“ gekennzeichnet und der dem Puffer zugewiesene Datentyp ist char. Wir haben die Größe des Pufferergebnisses mit dem Wert "100" festgelegt. Dann haben wir die Variable "Zeit" mit dem Datentyp "time_t" konstruiert, der den Systemzeitwert in der C -Sprache speichert. Die Variable "Zeit" wird mit dem System "Time (null)" initialisiert. Mit diesem Zeitanruf wird die aktuelle Zeit abgerufen.

Danach verwendeten wir die Funktion Strptime, die die Funktion „Ergebnis“, „Größe“ und die Lokalzeitfunktion als Argumente nimmt. Die Lokalzeitfunktion gibt die Referenz der „Zeit“ ein und wird verwendet, um die gegenwärtige Zeit unseres Systems darzustellen. Darüber hinaus haben wir den Modifikator „%y“ in der Strptime -Funktion verwendet, mit der das Jahr im Jahrhundert angezeigt wird. In der letzten Zeile des Programms haben wir eine Printf -Anweisung, in der wir den %s verwendet haben. Mit dem %S -Formatspezifizierer der Printf -Funktion können wir eine Zeichenfolge drucken. Der Benutzer erhielt eine Nachricht, die das laufende Jahr enthielt.

#enthalten
#enthalten
int main (int argc, const char * argv [])

Char -Ergebnis [100];
Zeit_T -Zeit;
Zeit = Zeit (null);
Strftime (Ergebnis, Größe (Ergebnis), "%y", lokale Zeit (& Zeit));
printf ("Wir sind in Jahr %s !\ n ", Ergebnis);
Rückkehr 0;

Wenn wir das STRPTime -Programm ausgeführt haben, wird das laufende Jahr „2022“ in der Systemschale erhalten.

Beispiel 2:

Wir haben die Leistung der Strptime -Funktion im vorhergehenden Beispielprogramm gesehen. Wie wir bereits erläutert haben, unterstützt die Strptime -Funktion verschiedene Modifikatoren in der C -Sprache. In diesem Beispiel haben wir versucht, einige der Strptime -Modifikatoren zu verwenden, um ihre Funktionalität zu untersuchen. Hier haben wir die #Define -Anweisung verwendet, um die Definition _xopen_Source im Abschnitt "Header" des folgenden Programms hinzuzufügen. Es wird verwendet, um die zusätzlichen Definitionen von Funktionen einzugeben, die in den Standards X/Open und POSIX vorhanden sind.

Als nächstes haben wir auch einige erforderliche Module von C -Standards für die Programmimplementierung hinzugefügt. Danach haben wir die Hauptfunktion konstruiert, bei der wir die Struktur „TM“ für die Definition der Zeit festgelegt haben. Wir haben das Objekt für die "Struct TM" deklariert "TM". Dann setzen wir die Größe des Puffer. Wir haben die Memset -Funktion bereitgestellt, die als Speicher -Setter bezeichnet wird. Wie der Name schon sagt, wird er verwendet, um die Speicherblöcke mit semantischem Wert zu füllen.

Dann haben wir die Strptime -Funktion aufgerufen, bei der wir das Daten- und Zeitformat mit den Strptime -Modifikatoren gaben. Der Modifikator „%y“ wird verwendet, um das Jahr anzuzeigen. "%M-%d" wird verwendet, um Monats und Tag darzustellen. Der Modifikator „%H:%M:%s“ wird so formatiert, dass die Zeit in Stunden, Minuten und Sekunden liefert. Darüber hinaus haben wir eine andere Funktion, Strftime, verwendet, um sich von der Strptime -Funktion zu unterscheiden.
Die Strftime -Funktion hat die Zeichen aus dem Zeitobjekt erstellt. Es nimmt das Argument als Puffer, die Größe des Puffers und einige Modifikatoren an. Dann hält die Funktion den „Puffer“ fest. Das angegebene Format von Datum und Uhrzeit wird angezeigt.

#Define _xopen_Source
#enthalten
#enthalten
#enthalten
#enthalten
int
Haupt (void)

Struktur TM TM;
Zeichenpuffer [100];
memset (& tm, 0, sizeof (struct tm));
STRPTIME ("2022-10-9 12:25:05", "%y-%M-%D%H:%M:%S", & TM);
Strftime (Puffer, Größe (Puffer), " %d %b %y %H: %m", & tm);
Puts (Puffer);
exit (exit_success);

Durch die Ausführung des Programms haben wir die Daten und Zeit im angegebenen Format der Funktion erhalten.

Beispiel 3:

Hier haben wir das Datum und die Uhrzeit der US -Region mit der StrPptime -Funktion angezeigt. Wir haben Standardbibliotheken in das folgende Programm eingefügt. Als nächstes haben wir die Hauptfunktion bereitgestellt, bei der wir die Puffergröße festgelegt haben. Danach haben wir das Objekt "Zeit" mit dem Datentyp "time_t" definiert, das "Zeit" ist, das Objekt "Zeit" definiert haben. Als nächstes haben wir die Struktur „TM“ erstellt, die das Zeigerobjekt „Timeptr“ und „Ergebnis“ deklariert. Dann nennen wir die SetLocale -Funktion, in der wir das aktuelle Gebietsschema festlegen. Das "Zeit" -Objekt wird mit dem Time -System -Aufruf festgelegt, der Null als Wert nimmt.

Der TimePtr haben wir die LocalTime -Funktion zugewiesen, auf die sich die „Zeit“ bezieht. Die Strftime -Funktion wird verwendet, wodurch das formatierte Datum und die dage. Dann haben wir eine IF-ELSE. Wenn die angegebene Uhrzeit und das angegebene Datum in der STRPTime -Funktion null ist, wird die Printf -Anweisung ausgeführt. Andernfalls müssen wir einen anderen Abschnitt ausführen. Der else -Teil verfügt über verschiedene Printf -Anweisungen, die die verschiedenen Modifikatoren für Datum und Uhrzeit verwenden.

#Define _xopen_Source
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
int main (void)

Char buf [100];
Zeit_T -Zeit;
Struktur TM *Timeptr, Ergebnis;
setLocale (lc_all, "/qsys.Lib/en_us.Gebietsschema ");
Zeit = Zeit (null);
timeptr = localTime (& time);
Strftime (BUF, Sizeof (BUF), "%A%m/%d/%y%R", Timeptr);
if (Strptime (BUF, "%A%M/%d/%y%R", & Ergebnis) == NULL)
printf ("\ nstrptime fehlgeschlagen \ n");
anders

printf ("Zeit in Stunde: %d \ n", Ergebnis.TM_Hour);
printf ("Zeit in min: %d \ n", Ergebnis.tm_min);
printf ("Zeit in Sec: %d \ n", Ergebnis.tm_sec);
printf ("Zeit in mon: %d \ n", Ergebnis.tm_mon);
printf ("Zeit in Monat und Tag: %d \ n", Ergebnis.tm_mday);
printf ("Zeit im Jahr: %d \ n", Ergebnis.tm_year);
printf ("Zeit in Jahr und Tag: %d \ n", Ergebnis.tm_yday);
printf ("Zeit in Woche und Tag: %d \ n", Ergebnis.tm_wday);

Rückkehr 0;

Die folgenden konvertierten Daten und Zeiten werden gegen jeden Modifikator der Strptime -Funktion ausgeführt.

Abschluss

Diese Anleitung richtet sich an die Linux Strptime -Funktion in der C -Programmiersprache C. Wir haben die Funktionalität dieser bestimmten Funktion mit den Beispielcodes erklärt. Wir haben die oben genannten implementiert und alle Codes sind mit dem Ubuntu 22 ausführbar.04 Terminal. Darüber hinaus haben wir den Unterschied zwischen den beiden Funktionen, Strptime und Strftime, gesehen, die irgendwie identisch sind. Die STRPTIME -Funktion erstellt eine Zeitausgabe aus Text, Eingabe, und die Strftime -Funktion ergibt die String -Daten aus der Zeiteingabe.