Linux Strptime System Call in c

Linux Strptime System Call in c
La funzione strptime () utilizza la sintassi data dal formato per convertire la stringa di caratteri a cui si fa riferimento dal buffer in dati inseriti nella struttura "TM" a cui si fa riferimento. Qui, il formato contiene una o varie direttive, ma non zero. O una specifica di conversione o un carattere normale (non% o spazio bianco) è disponibile in una direttiva. Ogni specifica delle conversioni è costituita da un carattere "%" che comprende uno o più caratteri di conversione che definiscono la sostituzione che deve essere effettuata che indica che è necessaria la sostituzione. Per verificare che la funzione funzioni come previsto, sia il formato che il buffer devono avere uno spazio bianco o un altro separatore. Per mantenere la conversione del primo numero da caratteri di conversione che corrispondono al secondo specificatore di conversione, deve esserci un separatore tra le conversioni da due stringa a numero.

Esempio 1:

Seguiamo l'esempio seguente per vedere la funzionalità della funzione Strptime in C lingua. Qui, abbiamo stampato l'anno con la funzione Strptime. Dato che siamo nell'anno "2022", la funzione Strptime verrà emessa quest'anno. All'interno del file di programma di C, abbiamo inserito il file di intestazione “Time.h "attraverso il quale possiamo ottenere le informazioni sulla data e ora. Successivamente, abbiamo stabilito la funzione nel principale () del programma.

Successivamente, abbiamo creato il buffer per l'allocazione dello spazio per nuovi dati. Il buffer è etichettato come "risultato" e il tipo di dati assegnato al buffer è char. Abbiamo impostato le dimensioni del "risultato" del buffer con il valore "100". Quindi, abbiamo costruito la variabile "tempo" con il tipo di dati "time_t" che memorizza il valore del tempo di sistema nella lingua C. La variabile "Time" è inizializzata con la chiamata di sistema "Time (Null)". Con questa chiamata del sistema di tempo, il tempo corrente verrà recuperato.

Successivamente, abbiamo impiegato la funzione Strptime che prende il "risultato", la funzione "sizeof" e la funzione locale come argomenti. La funzione di tempo locale inserisce il riferimento del "tempo" e viene utilizzata per rappresentare il tempo attuale del nostro sistema. Inoltre, abbiamo usato il modificatore "%y" nella funzione strtime, che viene utilizzato per mostrare l'anno nel secolo. Nell'ultima riga del programma, abbiamo un'istruzione printf in cui abbiamo usato la %s. Il specificatore del formato %s della funzione printf ci consente di stampare una stringa. L'utente ha ricevuto un messaggio che includeva l'anno in corso.

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

risultato di carbone [100];
tempo time_t;
Tempo = tempo (null);
strftime (risultato, sizeof (risultato), "%y", locale locale (& time));
printf ("We Are in Year %s !\ n ", risultato);
restituzione 0;

Quando abbiamo eseguito il programma Strptime, l'anno in corso "2022" è ottenuto nel shell del sistema.

Esempio 2:

Abbiamo visto le prestazioni della funzione Strptime nel programma di esempio precedente. Come abbiamo discusso in precedenza, la funzione Strptime supporta vari modificatori nella lingua C. In questo esempio, abbiamo cercato di usare alcuni dei modificatori di strtime per esplorare la loro funzionalità. Qui, abbiamo usato la direttiva #define per aggiungere la definizione _xopen_source nella sezione di intestazione del seguente programma. Viene utilizzato per inserire le definizioni extra di funzioni esistenti negli standard x/aperti e posix.

Successivamente, abbiamo anche aggiunto alcuni moduli richiesti degli standard C per l'implementazione del programma. Successivamente, abbiamo costruito la funzione principale in cui abbiamo stabilito la struttura "TM" per definire il tempo. Abbiamo dichiarato l'oggetto "TM" per la "struct tm". Quindi, impostiamo le dimensioni del buffer su "100" per la funzione Strptime. Abbiamo distribuito la funzione Memset, che è nota come set di memoria. Come suggerisce il nome, viene utilizzato per riempire i blocchi di memoria con valore semantico.

Quindi, abbiamo invocato la funzione Strptime in cui abbiamo dato il formato dati e tempo con i modificatori Strptime. Il modificatore "%y" viene utilizzato per indicare l'anno. "%M-%d" è usato per rappresentare il mese e il giorno. Il modificatore "%h:%m:%s" è formattato in un modo che fornirà il tempo in ore, minuti e secondi. Inoltre, abbiamo utilizzato un'altra funzione, Strftime, per differenziarsi dalla funzione Strptime.
La funzione Strftime ha creato i caratteri dall'oggetto temporale. Prende l'argomento come buffer, dimensioni del buffer e alcuni modificatori. Quindi mette la funzione contiene il "buffer". Verrà visualizzato il formato di data e ora specificato.

#define _xopen_source
#includere
#includere
#includere
#includere
int
Main (vuoto)

struct tm tm;
Char Buffer [100];
memset (& tm, 0, sizeof (struct tm));
strtime ("2022-10-9 12:25:05", "%y-%m-%d%h:%m:%s", & tm);
Strftime (tampone, sizeof (tampone), " %d %b %y %h: %m", & tm);
put (buffer);
usit (exit_success);

Eseguindo il programma, abbiamo ottenuto i dati e il tempo nel formato specificato dato alla funzione.

Esempio 3:

Qui, abbiamo mostrato la data e l'ora della regione degli Stati Uniti usando la funzione Strptime. Abbiamo inserito librerie standard nel seguente programma. Successivamente, abbiamo distribuito la funzione principale in cui impostiamo la dimensione del buffer. Successivamente, abbiamo definito l'oggetto "tempo" con il tipo di dati "time_t". Successivamente, abbiamo stabilito la struttura "TM" che dichiara l'oggetto puntatore "timeptr" e "risultato". Quindi, chiamiamo la funzione setLocale in cui impostiamo il locale corrente. L'oggetto "tempo" è impostato con la chiamata di sistema di tempo, che prende null come valore.

A TimePtr, abbiamo assegnato la funzione locale, a cui si fa riferimento dal "tempo". Viene impiegata la funzione strftime, a cui viene assegnata la data e l'ora formattata. Quindi, abbiamo una condizione IF-ELSE in cui la condizione if prende la funzione strtime con gli argomenti. Quando l'ora e la data specificata all'interno della funzione Strptime sono nulli, l'istruzione printf verrà eseguita. Altrimenti, abbiamo un'altra sezione da eseguire. La porzione altro ha varie istruzioni di stampa che utilizzano i diversi modificatori per la data e l'orario.

#define _xopen_source
#includere
#includere
#includere
#includere
#includere
int main (vuoto)

char buf [100];
tempo time_t;
struct tm *timeptr, risultato;
setLocale (LC_ALL, "/QSYS.Lib/en_us.Locale ");
Tempo = tempo (null);
TimePtr = LocalTime (& Time);
strftime (BUF, sizeof (BUF), "%a%m/%d/%y%r", timeptr);
if (strptime (buf, "%a%m/%d/%y%r", e risultato) == null)
printf ("\ nstrptime non riuscito \ n");
altro

printf ("time in hour: %d \ n", risultato.tm_hour);
printf ("time in min: %d \ n", risultato.tm_min);
printf ("Time in sec: %d \ n", risultato.tm_sec);
printf ("Time in mon: %d \ n", risultato.tm_mon);
printf ("Tempo in mese e giorno: %d \ n", risultato.tm_mday);
printf ("time in year: %d \ n", risultato.tm_year);
Printf ("Tempo in anno e giorno: %d \ n", risultato.tm_yday);
printf ("Tempo in settimana e giorno: %d \ n", risultato.tm_wday);

restituzione 0;

I seguenti dati e tempo convertiti vengono eseguiti rispetto a ciascun modificatore della funzione Strptime.

Conclusione

Questa guida è per la funzione Linux Strptime nel linguaggio di programmazione C. Abbiamo spiegato la funzionalità di questa particolare funzione con i codici di esempio. Abbiamo implementato quanto sopra e tutti i codici sono eseguibili con Ubuntu 22.04 Terminale. Inoltre, abbiamo visto la differenza tra le due funzioni, lo strptime e lo strftime, che sono in qualche modo identici. La funzione Strptime crea un output del tempo da testo, input e la funzione Strftime fornisce i dati della stringa dall'input del tempo.