תחביר
intgettimeofday( מבנהזמן*עִיר, מבנהאזור זמן*tz)ה gettimeofday () הפונקציה מוגדרת ב- sys/time.h קובץ הכותרת.
טיעונים
פונקציה זו לוקחת שני טיעונים:
ה 1רחובהטיעון מצביע על זמן מִבְנֶה. ה זמן המבנה מוכרז כמפורט להלן sys/time.h קובץ הכותרת :
מבנהזמן{
time_t tv_sec; // בשימוש למשך שניות
suseconds_t tv_usec; // משמש למיקרו שניות
}
מבנה הזמן הזמן המבנה מייצג זמן לוח שנה. יש לה שני חברים:
- tv_sec : זהו מספר השניות מאז התקופה.
- tv_usec : זוהי מיקרו שניות נוספות לאחר חישוב מספר השניות מאז התקופה. .
ה 2ndהטיעון מצביע על אזור זמן מִבְנֶה. בדרך כלל יש להגדיר אותו ל- NULL מכיוון אזור זמן struct הוא מיושן. טענה זו מיועדת לתאימות לאחור בלבד.
החזר ערכים
על ההצלחה, ה gettimeofday () החזרה 0, לכישלון הפונקציה מחזירה -1.
פשוט קבל זמן והדפסה
#לִכלוֹל#לִכלוֹל
intרָאשִׁי() {
מבנהזמן זמני_זמן;
gettimeofday(&זמן נוכחי,ריק);
printf ('שניות: %ld nמיקרו שניות: %ld ',
זמן נוכחי.tv_sec,זמן נוכחי.tv_usec);
לַחֲזוֹר 0;
}
תְפוּקָה:
פה, sys/time.h נכלל עבור gettimeofday () פונקציה ומבנה זמן. ה gettimeofday () פונקציה הגדירו את הזמן בחבר המבנה timeval (current_time). tv_sec הוא מספר האינטגרלי של השניות שחלפו מאז תחילת ה- עידן יוניקס , בחצות UTC ב- 1 בינואר 1970 ו- tv_usec הוא מספר נוסף של מיקרו שניות שחלפו מ- tv_sec. אם אתה מפעיל את התוכנית אתה אמור לראות את הפלט. בכל פעם שאתה מפעיל את התוכנית הפלט ישתנה.
NULL שגיאת ארגומנט
#לִכלוֹל#לִכלוֹל
intרָאשִׁי() {
מבנהזמן זמני_זמן;
gettimeofday(ריק,ריק);
לַחֲזוֹר 0;
}
תְפוּקָה:
בדוגמה זו מראה כי הטיעון הראשון של gettimeofday () הפונקציה לא צריכה להיות NULL. אזהרת הידור תגיע אם הטענה הראשונה היא NULL.
עיצוב דוגמא לזמן הנוכחי
#לִכלוֹל#לִכלוֹל
#לִכלוֹל
intרָאשִׁי() {
מבנהטלוויזיה של זמן;
time_t t;
מבנהtm*מידע;
לְהַשְׁחִירבַּלָם[64];
gettimeofday(&טֵלֶוִיזִיָה,ריק);
t=טֵלֶוִיזִיָה.tv_sec;
מידע= זמן מקומי (&t);
printf ('%s', בזמן השעה (מידע));
זמן זמן (בַּלָם, מידה שלבַּלָם, 'היום הוא %A, %B %d. n',מידע);
printf ('%s',בַּלָם);
זמן זמן (בַּלָם, מידה שלבַּלָם, 'הזמן הוא %I: %M %p. n',מידע);
printf ('%s',בַּלָם);
לַחֲזוֹר 0;
}
תְפוּקָה:
בדוגמה זו מראה כיצד להדפיס תאריך ושעה בפורמט אחר. לא קל לייצג תאריכים בערך ההחזרה של gettimeofday () פונקציה. פה, זמן מקומי() ו strftime () פונקציות משמשות לייצוג יפה של ערך ההחזרה של gettimeofday () .
ה זמן מקומי() פונקציה לוקחת ארגומנט, שהוא התייחסות למצביע של tv_sec שדה של מבנה זמן ומחזיר הפניה למצביע של a struct tm לְהִתְנַגֵד.
ה strftime () הפונקציה תיצור מחרוזת מותאמת אישית המציגה את התאריך והשעה מה- struct tm מַצבִּיעַ. מפרטי פורמט משמשים לתצוגה מעוצבת. לדוגמה, מחרוזת הפורמט%d-%m-%Y%H:%M:%S מציינת את התאריך והשעה בטופס זה:
04-14-2020 13:09:42להלן מפרטי ההמרות, ניתן להשתמש בהם לתצוגה מעוצבת:
מפרט | מַשְׁמָעוּת |
%ל | השם המקוצר של יום חול לפי המקום הנוכחי. |
%ל | שם יום החול לפי המקום הנוכחי. |
% ב | שם החודש המקוצר לפי המקום הנוכחי. |
% ב | שם החודש המלא לפי המקום הנוכחי. |
% ג | הייצוג המועדף על תאריך ושעה עבור המקום הנוכחי. |
%ד | כמספר עשרוני ליום החודש (טווח 01 - 31). |
%ח | שימוש 24 שעות (טווח 00-23) עד השעה כמספר עשרוני. |
%אני | שימוש ב- 12 שעות (טווח 00-23) עד השעה כמספר עשרוני. |
%j | כמספר עשרוני ליום השנה (טווח 001-366). |
%M | כמספר עשרוני לחודש (טווח 01 - 12). |
%M | המספר העשרוני של הדקה. |
%p | בהתבסס על ערך הזמן שצוין, 'am' או 'pm' או המחרוזות המקבילות לאזור הנוכחי. |
%S | המספר העשרוני של השני. |
% איקס | ייצוג מועדף של התאריך עבור המקום הנוכחי, אך ללא זמן. |
% איקס | ייצוג מועדף של הזמן עבור המקום הנוכחי, אך ללא תאריך. |
%ו | השנה עשרונית אך אין מאה (נעה בין 00 - 99). |
%AND | השנה עשרונית כולל מאה. |
%עם | אזור הזמן. |
שימוש ב- gettimeofday על מנת למדוד את זמן ביצוע התוכנית
#לִכלוֹל#לִכלוֹל
intרָאשִׁי() {
מבנההתחלת זמן,סוֹף;
gettimeofday(&הַתחָלָה,ריק);
ל (intאני= 0;אני<1e5 ;אני++) {
}
gettimeofday(&סוֹף,ריק);
printf ('הזמן שנדרש לספור עד 10^5 הוא: %ld מיקרו שניות n',
((סוֹף.tv_sec * 1000000 +סוֹף.tv_usec) -
(הַתחָלָה.tv_sec * 1000000 +הַתחָלָה.tv_usec)));
לַחֲזוֹר 0;
}
תְפוּקָה:
דוגמה זו מראה כיצד gettimeofday () ניתן להשתמש בפונקציה לחישוב זמן הביצוע של תוכנית.
סיכום
בדרך זו, ה gettimeofday () הפונקציה עשויה לשמש ב- Linux. לצורך העברת הקוד הקיים, gettimeofday () ניתן להשתמש בפונקציה אך בקוד חדש אין להשתמש בה. clock_gettime () ניתן להשתמש בפונקציה במקום gettimeofday () .