getTimeofday e setTimeofday in c

getTimeofday e setTimeofday in c
“Molti di noi sapranno delle due funzioni relative al tempo del sistema operativo Linux. Sono la funzione getTimeofday () e setTimeofday (). Entrambe queste funzioni ci aiutano a determinare il tempo effettivo nella piattaforma Linux. Nella conversazione di oggi, esploreremo le caratteristiche e i meccanismi funzionali di queste funzioni.

Inizialmente, capiremo la funzione GetTimeofDay ()."

getTimeofDay ()

La funzione getTimeofday () è una funzione standard la cui definizione è scritta in un file di intestazione nella libreria C denominata sys/time.H.

Sintassi
La sintassi della funzione getTimeofday () è descritta di seguito

Int getTimeofDay (struct timeval * tm_vl, struct timezone * tm_zn)

La funzione getTimeofday () prende due parametri come argomenti all'interno della sua parentesi. Uno di questi è il tm_vl variabile che contiene timeval dati e un altro è il tm_zn variabile che contiene tipo di fuso orario.

Esistono due membri di dati standard che esistono nella struttura timeval. Il primo è TV_SEC, E un altro è TV_USEC. TV_SEC rappresenta la quantità di tempo in secondi e la TV_usec rappresenta la quantità di tempo in un microsecondo.

Al momento, la struttura del fuso orario non viene utilizzata in quanto è diminuita nel suo valore per un periodo di tempo. Per questo, passiamo NULLO come valore della struttura del fuso orario.

Esempio di programmazione 1
Questo è un programma per ottenere il tempo impiegato per una particolare funzione da eseguire.

#includere
#includere
#includere
#includere
Float tm_com (struct timeval *str, struct timeval *lst)

return (lst-> tv_sec-str-> tv_sec) + 1e-6*(lst-> tv_usec-str-> tv_usec);

vuoto iterazione (conteggio size_t)

per (int j = 0; j %d) tempo impiegato: %0.8f sec \ n ",
count1, tm_com (& str, & lst));
getTimeofDay (& STR, null);
iterazione (count2);
getTimeofday (& lst, null);
printf ("Funzione iteratore (conteggio del loop -> %d) Tempo impiegato: %0.8f sec \ n ",
count2, tm_com (& str, & lst));
usit (exit_success);

Produzione

Spiegazione
All'interno della funzione principale (), creeremo due variabili denominate "str" E "LST" di una struttura chiamata “Timeval." Creeremo anche due variabili denominate "Count1" E "Count2".

All'interno della funzione getTimeofday (), passeremo "STR" E NULLO. Allora chiameremo una funzione denominata "iterazione," Quale definizione è scritta sopra la funzione principale (). All'interno della funzione iterazione (), passeremo il "Count1". All'interno della funzione getTimeofday (), passeremo "LST" E NULLO.

Dopo quello, da "LST" E "STR", Avremo il tempo di esecuzione per la funzione "iterazione" per valore "Count1" Come primo output.

Il processo di cui sopra viene eseguito di nuovo per un altro valore più grande passato attraverso la variabile "Count2".

Ecco perché abbiamo osservato che il tempo di esecuzione "Count2" è più che "Count1".

Esempio di programmazione 2
Questo programma mostra il valore di ritorno di GetTimeofday su successo o fallimento.

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

struct timeval corrente;
int ld;
LD = GetTimeofDay (& Current, Null);
if (ld == 0)
printf ("questa affermazione sta eseguendo . Ciò significa che GetTimeofday ha successo. \N");
printf ("Secondo: %lu \ n microsecondo: %06lu \ n",
attuale.TV_SEC, corrente.TV_USEC);

altro
printf ("questa affermazione sta eseguendo . Ciò significa che GetTimeofday non ha successo!! errno = %d \ n ",
errno);
restituzione -1;

restituzione 0;

Produzione

Spiegazione
Qui creiamo una variabile denominata "corrente" sotto la struttura timeval e una variabile di tipo intero denominato "Id." Ora chiameremo la funzione getTimeofday () e passeremo due parametri come argomenti. I due argomenti sono "attuale" E NULLO. Qualunque valore restituirà questa funzione; sarà assegnato alla variabile ID.

Se la "Id"Il valore è zero, la funzione getTimeofday () esegue correttamente e stampare il tempo in secondo e microsecondo; altrimenti non eseguire correttamente.

setTimeofDay ()

La funzione setTimeofday () è una funzione standard la cui definizione è menzionata in un file di intestazione nella libreria C denominata sys/time.H. Questa funzione ci aiuta a rendere l'orologio per lo standard di tempo universale.

Sintassi

La sintassi della funzione setTimeofday () è descritta di seguito.

int setTimeofDay (struct timeval * tm_vl, struct timezone * tm_zn)

La funzione setTimeofday () prende due parametri come argomenti all'interno della sua parentesi. Uno di essi è tm_vl; È un puntatore della struttura timeval che rappresenta il tempo in secondi e microsecondi. Un altro è tm_zn. Al momento, la struttura del fuso orario non viene utilizzata in quanto è battuta nel suo valore per un periodo di tempo. Per questo, passiamo NULLO come valore della struttura del fuso orario.

ritorna
Durante l'esecuzione riuscita della funzione setTimeofday () restituisce 0.

In esecuzione senza successo della funzione setTimeofday () restituisce -1.

Esempio di programmazione 3
Questa funzione mostrerà il valore di ritorno sull'esecuzione riuscita di questa funzione.

#includere
#includere
#includere
int main ()

struct timeval tm_vl;
int sreturn;
tm_vl.TV_SEC = 1885151555;
tm_vl.TV_USEC = 0;
sreturn = setTimeofDay (& tm_vl, null);
if (sreturn == 0)

printf ("setTimeofday viene eseguito senza alcun errore \ n");

altro
printf ("setTimeofday non ha successo"
"errno = %d \ n", errno);
restituzione -1;

restituzione 0;

Produzione
Esegui senza sudo e quindi setTimeofday () non è riuscito.

Esegui con sudo e quindi setTimeofday () ha successo.

Spiegazione
Qui creiamo due variabili denominate "TV_SEC" E “TV_USEC." Entrambe le variabili sono un membro del "Timeval" struttura e assegna un certo valore. Quindi chiameremo la funzione setTimeofday () e all'interno della funzione passeremo il "TM_VAL" variabile. Qualunque valore restituirà, questa funzione verrà assegnata al "Sreturn" variabile. Se la "Sreturn" Restituisce la variabile 0, quindi questa funzione è stata eseguita correttamente e fornisce il suo output; altrimenti non eseguito correttamente e stampa il valore di "Errno" a un valore particolare (per questo programma, è 1).

Qui all'inizio, abbiamo gestito il programma senza sudo, ed è per questo che setTimeofday () non è stato possibile eseguire con successo e restituire -1.

Per la seconda volta, abbiamo gestito il programma con Sudo e setTimeofDay () ha successo e restituito 0.

Conclusione

Nella discussione precedente, abbiamo ottenuto molte informazioni sulla funzione GetTimeofday () e setTimeofday (). Queste due funzioni sono le funzioni più importanti in termini di piattaforma Linux in C lingua nel contenuto del tempo. Per ottenere tempo come input e per impostare il tempo sul sistema, queste due funzioni ci aiutano molto a configurare il sistema.