GetTimeOfDay and SettimeOfday in C

GetTimeOfDay and SettimeOfday in C
“Mange av oss vil vite om de to funksjonene relatert til tiden i Linux -operativsystemet. De er GetTimeOfDay () -funksjon og SettimeOfDay () -funksjon. Begge disse funksjonene hjelper oss med å bestemme den faktiske tiden i Linux -plattformen. I dagens samtale vil vi utforske egenskapene og funksjonelle mekanismene til disse funksjonene.

Til å begynne med vil vi forstå GetTimeOfDay () -funksjonen.”

GetTimeOfDay ()

Funksjonen GetTimeOfDay () er en standardfunksjon hvis definisjon er skrevet i en overskriftsfil i C -biblioteket som heter Sys/Time.h.

Syntaks
Syntaksen til GetTimeOfDay () -funksjonen er beskrevet nedenfor

Int getTimeOfDay (struct timeeval * tm_vl, struct timezone * tm_zn)

GetTimeOfDay () -funksjonen tar to parametere som argumenter i parentesen. En av dem er tm_vl variabel som inneholder timeval datatype, og en annen er tm_zn variabel som inneholder tidssonedatatype.

Det er to standard datamedlemmer som finnes i tidsvalstrukturen. Den første er TV_sec, Og en annen er TV_USEC. TV_sec representerer hvor mye tid på sekunder, og TV_USEC representerer hvor mye tid i et mikrosekunder.

For tiden brukes ikke tidssonestrukturen da den reduseres i verdien over en periode. For dette passerer vi NULL som en verdi av tidssonestrukturen.

Programmering Eksempel 1
Dette er et program for å få tiden tatt for en bestemt funksjon å utføre.

#inkludere
#inkludere
#inkludere
#inkludere
float tm_com (struct timeeval *str, struct timeval *lst)

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

ugyldig iterasjon (størrelse_t telling)

for (int j = 0; j %d) Tid tatt: %0.8f sec \ n ",
count1, tm_com (& str, & lst));
GetTimeOfDay (& Str, NULL);
iterasjon (count2);
GetTimeOfDay (& lst, NULL);
printf ("iteratorfunksjon (loop count -> %d) Tid tatt: %0.8f sec \ n ",
count2, tm_com (& str, & lst));
exit (exit_success);

Produksjon

Forklaring
Inne i hovedfunksjonen () vil vi lage to variabler som heter “str”Og “LST” av en struktur som heter “Tideval.” Vi vil også lage to variabler som er navngitt “Count1” og “Count2”.

Inne i GetTimeOfDay () -funksjonen vil vi passere “Str” og NULL. Da vil vi kalle en funksjon som heter "Iterasjon," Hvilken definisjon er skrevet over Main () -funksjonen. Inne i iterasjonen () -funksjonen vil vi passere “Count1”. Inne i GetTimeOfDay () -funksjonen vil vi passere “LST” og NULL.

Etter det, fra “LST” og "STR," Vi vil få utførelsestiden for funksjon “Iterasjon” for verdi “Count1” Som en første utgang.

Ovennevnte prosess blir gjort igjen for en annen større verdi som føres gjennom variabelen “Count2”.

Derfor har vi observert at utførelsestiden for “Count2” er mer enn “Count1”.

Programmering Eksempel 2
Dette programmet viser returverdien av GetTimeOfDay på suksess eller fiasko.

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

Struct TimeVal Current;
int ld;
LD = GetTimeOfDay (& Current, NULL);
if (ld == 0)
printf ("Denne uttalelsen utfører . Dette betyr at GetTimeOfDay er vellykket. \ n ");
printf ("andre: %lu \ n mikrosekund: %06lu \ n",
nåværende.TV_sec, nåværende.TV_USEC);

annet
printf ("Denne uttalelsen utfører . Dette betyr at GetTimeOfDay er mislykket!! errno = %d \ n ",
errno);
return -1;

retur 0;

Produksjon

Forklaring
Her oppretter vi en variabel som heter “Current” under tidsvalstrukturen og en heltallstypevariabel som heter “Id. Nå vil vi kalle GetTimeOfDay () -funksjonen, og vi vil passere to parametere som argumenter. De to argumentene er "nåværende”Og NULL. Uansett hvilken verdi som vil returnere denne funksjonen; det vil bli tildelt ID -variabelen.

Hvis “Id”Verdien er null, GetTimeOfDay () -funksjonen utføres vellykket og skriver ut tiden i andre og mikrosekund; ellers ikke utfør vellykket.

setTimeOfday ()

SettimeOfDay () -funksjonen er en standardfunksjon hvis definisjon er nevnt i en overskriftsfil i C -biblioteket som heter SYS/TIME.h. Denne funksjonen hjelper oss med å gjøre klokken til den universelle tidsstandarden.

Syntaks

Syntaksen til SettimeOfDay () -funksjonen er beskrevet nedenfor.

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

setTimeOfday () -funksjonen tar to parametere som argumenter inne i parentesen. En av dem er tm_vl; Det er en peker for tidsvalstruktur som representerer tiden i sekunder og mikrosekunder. En annen er tm_zn. For tiden brukes ikke tidssonestrukturen, da den er tilbakedatert i sin verdi over en periode. For dette passerer vi NULL som en verdi av tidssonestrukturen.

Returnerer
Ved vellykket utførelse av SettimeOfDay () -funksjonen returnerer den 0.

På mislykket utførelse av SettimeOfDay () -funksjonen kommer den tilbake -1.

Programmeringseksempel 3
Denne funksjonen vil vise returverdien på vellykket utførelse av denne funksjonen.

#inkludere
#inkludere
#inkludere
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 utføres uten feil \ n");

annet
Printf ("SettimeOfday er mislykket"
"errno = %d \ n", errno);
return -1;

retur 0;

Produksjon
Kjør uten sudo og så SettimeOfday () mislykkes.

Kjør med sudo og så setTimeOfday () er vellykket.

Forklaring
Her lager vi to variabler som heter “TV_sec” og “TV_USEC.” Begge variablene er medlem av “TimeVal” struktur og tilordne en viss verdi. Så vil vi kalle SettimeOfDay () -funksjonen, og inne i funksjonen vil vi passere “TM_VAL” variabel. Uansett hvilken verdi som vil returnere, vil denne funksjonen bli tildelt “Sreturn” variabel. Hvis “Sreturn” Variabel returnerer 0, da har denne funksjonen blitt utført med hell og gir utgangen; ellers ikke utført vellykket og skriver ut verdien av “Errno” Til en bestemt verdi (for dette programmet er det 1).

Her til å begynne med har vi kjørt programmet uten sudo, og det er grunnen til at SettimeOfday () ikke kunne kjøre vellykket og returnert -1.

For andre gang har vi kjørt programmet med sudo, og settimeOfday () er vellykket og returnert 0.

Konklusjon

I den tidligere diskusjonen har vi fått mye informasjon om GetTimeOfDay () -funksjonen og SettimeOfDay () -funksjonen. Disse to funksjonene er de viktigste funksjonene når det gjelder Linux -plattformen på C -språket i innholdet av tid. For å få tid som inngang og for å sette tid til systemet, hjelper disse to funksjonene oss mye med å konfigurere systemet.