C భాషలో gettimeofday ఫంక్షన్‌ను ఎలా ఉపయోగించాలి?

How Use Gettimeofday Function C Language



ది gettimeofday () ఫంక్షన్ సిస్టమ్ యొక్క గడియార సమయాన్ని పొందుతుంది. ప్రస్తుత సమయం గడిచిన సెకన్లు మరియు మైక్రోసెకండ్లలో 00:00:00, జనవరి 1, 1970 (యునిక్స్ యుగం) నుండి వ్యక్తీకరించబడింది. ఈ ఆర్టికల్లో, ఎలా ఉపయోగించాలో మేము మీకు చూపించబోతున్నాము gettimeofday () Linux లో ఫంక్షన్. కాబట్టి, ప్రారంభిద్దాం.

వాక్యనిర్మాణం

intgettimeofday( నిర్మాణాత్మకకాలపరిమితి*నగరం, నిర్మాణాత్మకసమయమండలం*tz)

ది gettimeofday () ఫంక్షన్ లో నిర్వచించబడింది sys/time.h శీర్షిక ఫైల్.







వాదనలు

ఈ ఫంక్షన్ రెండు వాదనలను తీసుకుంటుంది:



ది 1సెయింట్వాదన సూచిస్తుంది కాలపరిమితి నిర్మాణం. ది కాలపరిమితి నిర్మాణం క్రింది విధంగా ప్రకటించబడింది sys/time.h హెడర్ ఫైల్:



నిర్మాణాత్మకకాలపరిమితి{
tv_sec సమయం; // సెకన్ల పాటు ఉపయోగించబడుతుంది
suseconds_t tv_usec; // మైక్రో సెకన్ల కోసం ఉపయోగిస్తారు
}

స్ట్రక్ట్ టైమ్‌వాల్ నిర్మాణం క్యాలెండర్ సమయాన్ని సూచిస్తుంది. ఇందులో ఇద్దరు సభ్యులు ఉన్నారు:





  • tv_sec : ఇది యుగం నుండి సెకన్ల సంఖ్య.
  • tv_usec : ఇది యుగం నుండి సెకన్ల గణన తర్వాత అదనపు మైక్రోసెకన్లు. .

2ndవాదన సూచిస్తుంది సమయమండలం నిర్మాణం. ఇది సాధారణంగా NULL కి సెట్ చేయాలి ఎందుకంటే నిర్మాణాత్మక సమయ మండలి వాడుకలో లేదు. ఈ వాదన వెనుకబడిన అనుకూలత కోసం మాత్రమే.

రిటర్న్ విలువలు

విజయంపై, ది gettimeofday () రిటర్న్ 0, ఫెక్షన్ ఫంక్షన్ రిటర్న్స్ -1.



సింపుల్ గెట్ టైమ్ మరియు ప్రింట్

#చేర్చండి
#చేర్చండి

intప్రధాన() {
నిర్మాణాత్మకసమయ వ్యవధి కరెంట్_టైమ్;
gettimeofday(&ప్రస్తుత సమయం,శూన్య);
printf ('సెకన్లు: %ld nమైక్రో సెకన్లు: %ld ',
ప్రస్తుత సమయం.tv_sec,ప్రస్తుత సమయం.tv_usec);

తిరిగి 0;
}

అవుట్‌పుట్:

ఇక్కడ, sys/time.h కోసం చేర్చబడింది gettimeofday () ఫంక్షన్ మరియు సమయ వ్యవధి నిర్మాణం. ది gettimeofday () ఫంక్షన్ టైమ్‌వాల్ (కరెంట్_టైమ్) స్ట్రక్చర్ మెంబర్‌లో సమయాన్ని సెట్ చేస్తుంది. tv_sec అనేది ప్రారంభమైనప్పటి నుండి గడిచిన సమగ్ర సంఖ్య యునిక్స్ యుగం , జనవరి 1, 1970 న అర్ధరాత్రి UTC మరియు tv_usec అనేది tv_sec నుండి గడిచిన అదనపు మైక్రోసెకన్ల సంఖ్య. మీరు ప్రోగ్రామ్‌ని రన్ చేస్తే అవుట్‌పుట్ చూడాలి. మీరు ప్రోగ్రామ్‌ను అమలు చేసిన ప్రతిసారీ అవుట్‌పుట్ మారుతుంది.

శూన్య వాదన లోపం

#చేర్చండి
#చేర్చండి

intప్రధాన() {

నిర్మాణాత్మకసమయ వ్యవధి కరెంట్_టైమ్;
gettimeofday(శూన్య,శూన్య);
తిరిగి 0;
}

అవుట్‌పుట్:

ఈ ఉదాహరణలో మొదటి వాదన చూపిస్తుంది gettimeofday () ఫంక్షన్ శూన్యంగా ఉండకూడదు. మొదటి వాదన NULL అయితే సంకలనం హెచ్చరిక వస్తుంది.

ప్రస్తుత సమయ ఉదాహరణను ఫార్మాట్ చేస్తోంది

#చేర్చండి
#చేర్చండి
#చేర్చండి

intప్రధాన() {
నిర్మాణాత్మకటైమ్‌వాల్ టీవీ;
సమయం_టి టి;
నిర్మాణాత్మకtm*సమాచారం;
చార్బఫర్[64];

gettimeofday(&టీవీ,శూన్య);
t=టీవీtv_sec;

సమాచారం= స్థానిక సమయం (&t);
printf ('%s', asctime (సమాచారం));
strftime (బఫర్, పరిమాణంబఫర్, 'ఈరోజు %A, %B %d. n',సమాచారం);
printf ('%s',బఫర్);
strftime (బఫర్, పరిమాణంబఫర్, 'సమయం %I: %M %p. n',సమాచారం);
printf ('%s',బఫర్);

తిరిగి 0;
}

అవుట్‌పుట్:

ఈ ఉదాహరణలో తేదీ మరియు సమయాన్ని వివిధ ఫార్మాట్‌లో ఎలా ప్రింట్ చేయాలో చూపుతుంది. యొక్క రిటర్న్ వాల్యూ నుండి తేదీలను సూచించడం చాలా సులభం కాదు gettimeofday () ఫంక్షన్ ఇక్కడ, స్థానిక సమయం () మరియు strftime () యొక్క రిటర్న్ విలువను చక్కగా సూచించడానికి ఫంక్షన్లు ఉపయోగించబడతాయి gettimeofday () .

ది స్థానిక సమయం () ఫంక్షన్ ఒక వాదనను తీసుకుంటుంది, ఇది ఒక పాయింటర్‌కు సూచన tv_sec రంగంలో నిర్మాణాత్మక సమయ వ్యవధి మరియు a యొక్క పాయింటర్‌కు సూచనను అందిస్తుంది నిర్మాణాత్మక tm వస్తువు

ది strftime () ఫంక్షన్ నుండి తేదీ మరియు సమయాన్ని చూపించే వ్యక్తిగతీకరించిన, ఫార్మాట్ చేసిన స్ట్రింగ్‌ను రూపొందిస్తుంది నిర్మాణాత్మక tm పాయింటర్. ఫార్మాట్ స్పెసిఫైయర్‌లను ఫార్మాట్ చేసిన డిస్‌ప్లే కోసం ఉపయోగిస్తారు. ఉదాహరణకు, ఫార్మాట్ స్ట్రింగ్%d-%m-%Y%H:%M:%S ఈ రూపంలో తేదీ మరియు సమయాన్ని తెలుపుతుంది:

04-14-2020 13:09:42

కిందివి కన్వర్షన్ స్పెసిఫైయర్‌లు, ఫార్మాట్ చేసిన డిస్‌ప్లే కోసం ఉపయోగించవచ్చు:

స్పెసిఫైయర్ అర్థం
%కు ప్రస్తుత లొకేల్ ప్రకారం వారం రోజుల సంక్షిప్త పేరు.
%TO ప్రస్తుత లొకేల్ ప్రకారం వారం రోజుల పేరు.
% బి ప్రస్తుత లొకేల్ ప్రకారం సంక్షిప్త నెల పేరు.
% బి ప్రస్తుత లొకేల్ ప్రకారం పూర్తి నెల పేరు.
% సి ప్రస్తుత లొకేల్ కోసం తేదీ మరియు సమయం యొక్క ప్రాధాన్యత ప్రాతినిధ్యం.
%d నెల రోజుకి దశాంశ సంఖ్యగా (పరిధి 01 - 31).
%H 24-గంటలు (పరిధి 00-23) గంటకు దశాంశ సంఖ్యగా ఉపయోగించడం.
%I గంటకు 12-గంటలు (పరిధి 00-23) దశాంశ సంఖ్యగా ఉపయోగించడం.
%j సంవత్సరం రోజుకి దశాంశ సంఖ్యగా (పరిధి 001-366).
%m నెలకు దశాంశ సంఖ్యగా (పరిధి 01 - 12).
%M నిమిషం యొక్క దశాంశ సంఖ్య.
%p పేర్కొన్న సమయ విలువ ఆధారంగా, 'am' లేదా 'pm' లేదా ప్రస్తుత లొకేల్ కోసం సమానమైన స్ట్రింగ్‌లు.
%S రెండవ దశాంశ సంఖ్య.
% x ప్రస్తుత లొకేల్ కోసం తేదీ యొక్క ప్రాధాన్యత ప్రాతినిధ్యం, కానీ సమయం లేకుండా.
% X ప్రస్తుత లొకేల్ కోసం సమయం ప్రాధాన్యత ప్రాతినిధ్యం, కానీ తేదీ లేకుండా.
%మరియు సంవత్సరం దశాంశం కానీ శతాబ్దం లేదు (00 - 99 వరకు ఉంటుంది).
%మరియు శతాబ్దంతో సహా సంవత్సరం దశాంశం.
%తో సమయ మండలం.

ప్రోగ్రామ్ అమలు సమయాన్ని కొలవడానికి gettimeofday ని ఉపయోగించడం

#చేర్చండి
#చేర్చండి

intప్రధాన() {

నిర్మాణాత్మకసమయ వ్యవధి ప్రారంభం,ముగింపు;
gettimeofday(&ప్రారంభం,శూన్య);

కోసం (inti= 0;i<1e5 ;i++) {
}

gettimeofday(&ముగింపు,శూన్య);
printf (10^5 కి లెక్కించడానికి తీసుకున్న సమయం: %ld మైక్రో సెకన్లు n',
((ముగింపు.tv_sec * 1000000 +ముగింపు.tv_usec) -
(ప్రారంభంtv_sec * 1000000 +ప్రారంభంtv_usec)));

తిరిగి 0;
}

అవుట్‌పుట్:

ఎలా ఉందో ఈ ఉదాహరణ చూపిస్తుంది gettimeofday () ఫంక్షన్ ప్రోగ్రామ్ అమలు సమయం లెక్కింపు కోసం ఉపయోగించవచ్చు.

ముగింపు

ఈ విధంగా, ది gettimeofday () ఫంక్షన్ Linux లో ఉపయోగించబడవచ్చు. ఇప్పటికే ఉన్న కోడ్ పోర్టింగ్ కోసం, ది gettimeofday () ఫంక్షన్ ఉపయోగించవచ్చు కానీ కొత్త కోడ్‌లో దీనిని ఉపయోగించకూడదు. గడియారం_గంట సమయం () బదులుగా ఫంక్షన్ ఉపయోగించవచ్చు gettimeofday () .