Ц Програмирање

Како се користи функција геттимеофдаи у језику Ц?

Како се користи функција геттимеофдаи у језику Ц?
Тхе геттимеофдаи () функција добија системско време сата. Тренутно време се изражава у протеклим секундама и микросекундама од 00:00:00, 1. јануара 1970 (Уник Епоцх). У овом чланку ћемо вам показати како се користи геттимеофдаи () функција у Линуку. Па, кренимо.

Синтакса

инт геттимеофдаи (струцт тимевал * тп, струцт тимезоне * тз)

Тхе геттимеофдаи () функција је дефинисана у сис / време.х датотека заглавља.

Аргументи

Ова функција узима два аргумента:

Тхе 1ст аргумент указује на тимевал структура. Тхе тимевал структура је декларисана као испод у сис / време.х датотека заглавља:

струцт тимевал
тиме_т тв_сец; // користи се секундама
сусецондс_т тв_усец; // користи се микросекундама

Структура структурног времена представља календарско време. Има два члана:

Тхе 2нд аргумент указује на Временска зона структура. Обично би требало да буде постављено на НУЛЛ јер структурна временска зона је застарео. Овај аргумент служи само за повратну компатибилност.

Врати вредности

О успеху, геттимеофдаи () ретурн 0, за неуспјех функција враћа -1.

Једноставно пронађите време и одштампајте

#инцлуде
#инцлуде
инт маин ()
струцт тимевал цуррент_тиме;
геттимеофдаи (& цуррент_тиме, НУЛЛ);
принтф ("секунде:% лд \ нмикро секунди:% лд",
тренутно време.тв_сец, тренутно_време.тв_усец);
ретурн 0;

Излаз:

Ево, сис / време.х је укључен за геттимеофдаи () функција и временска структура. Тхе геттимеофдаи () функција поставља време у члану структуре временског интервала (тренутно_време). тв_сец је интегрални број секунди протеклих од почетка УНИКС епоха, у поноћ УТЦ 1. јануара 1970, а тв_усец је додатни број микросекунди протеклих од тв_сец. Ако покренете програм, требало би да видите излаз. Сваки пут када покренете програм, излаз ће се променити.

НУЛЛ Аргумент Грешка

#инцлуде
#инцлуде
инт маин ()
 
струцт тимевал цуррент_тиме;
геттимеофдаи (НУЛЛ, НУЛЛ);
ретурн 0;

Излаз:

У овом примеру је приказан први аргумент геттимеофдаи () функција не би требало да буде НУЛЛ. Упозорење о компилацији доћи ће ако је први аргумент НУЛЛ.

Пример форматирања тренутног времена

#инцлуде
#инцлуде
#инцлуде
инт маин ()
струцт тимевал тв;
тиме_т т;
струцт тм * инфо;
цхар буффер [64];
 
геттимеофдаи (& тв, НУЛЛ);
т = тв.тв_сец;
инфо = лоцалтиме (& т);
принтф ("% с", време (информације));
стрфтиме (буффер, сизеоф буффер, "Данас је% А,% Б% д.\ н ", информације);
принтф ("% с", бафер);
стрфтиме (буффер, сизеоф буффер, "Време је% И:% М% п.\ н ", информације);
принтф ("% с", бафер);
ретурн 0;

Излаз:

У овом примеру је приказано како се штампа датум и време у другом формату. Није лако представити датуме из повратне вредности од геттимеофдаи () функцију . Ево, Локално време() и стрфтиме () функције се користе за леп приказ повратне вредности геттимеофдаи ().

Тхе Локално време() функција узима аргумент, који је референца на показивач на тв_сец поље струцт тимевал и враћа референцу на показивач на струцт тм објект.

Тхе стрфтиме () функција ће генерисати персонализовани, форматирани низ који приказује датум и време са струцт тм показивач. Спецификатори формата користе се за форматирани приказ. На пример, низ формата „% д-% м-% И% Х:% М:% С“ наводи датум и време у овом облику:

14-04-2020 13:09:42

Следе спецификатори конверзије који се могу користити за форматирани приказ:

Спецификатор Значење
% а Скраћени назив радног дана према садашњем локалном језику.
% А Назив радног дана према садашњем локалном језику.
% б Назив скраћеног месеца према садашњем локалном језику.
% Б Назив пуног месеца према садашњем локалном језику.
% ц Пожељни приказ датума и времена за тренутни локалитет.
% д Као децимални број за месечни дан (распон 01 - 31).
% Х Користећи 24 сата (распон 00 - 23) до сата као децимални број.
% И Користећи 12 сати (распон 00 - 23) до сата као децимални број.
% ј Као децимални број за дан у години (распон 001-366).
% м Као децимални број за месец (распон 01 - 12).
% М Децимални број минута.
% п На основу наведене временске вредности, или 'ам' или 'пм' или еквивалентних низова за тренутну локализацију.
% С Децимални број секунде.
%Икс Пожељни приказ датума за тренутни локалитет, али без времена.
%ИКС Пожељни приказ времена за тренутни локалитет, али без датума.
% г Година је децимална, али нема века (распон од 00 - 99).
% И Година је децимална укључујући и век.
% З Временска зона.

Коришћење геттимеофдаи за мерење времена извршавања програма

#инцлуде
#инцлуде
 
инт маин ()
 
струцт тимевал почетак, крај;
геттимеофдаи (& старт, НУЛЛ);
 
за (инт и = 0; и <1e5 ; i++)

 
геттимеофдаи (& енд, НУЛЛ);
принтф ("Време потребно за бројање до 10 ^ 5 је:% лд микро секунди \ н",
((крај.тв_сец * 1000000 + крај.тв_усец) -
(почетак.тв_сец * 1000000 + старт.тв_усец)));
ретурн 0;

Излаз:

Овај пример показује да како геттимеофдаи () функција се може користити за израчунавање времена извршавања програма.

Закључак

На овај начин, геттимеофдаи () функција се може користити у Линуку. За пренос постојећег кода, геттимеофдаи () функција се може користити, али у новом коду се не сме користити. цлоцк_геттиме ()  функција се може користити уместо геттимеофдаи ().

Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...
СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...