관리 메뉴

History

gettimeofday 함수 본문

Linux/개념 실습 프로그래밍

gettimeofday 함수

luckybee 2022. 3. 16. 21:24
728x90
반응형
#include <sys/time.h>

gettimeofday 함수는 위에 있는 헤더 파일을 선언해줘야 사용할 수 있는 Linux에서 사용하는 c 헤더이다.

이 함수는 현재 시스템 시간을 마이크로 초까지 읽어주는 함수이다. 

 

gettimeofday의 첫 번째 인자인 tv는 현재 시스템 시간을 저장하기 위한 구조체

struct timeval
{
    long tv_sec;       // 초
    long tv_usec;      // 마이크로초
}

tv_sec는 초 단위 값이 저장되어 있고 tv_usec는 마이크로 초 단위의 값이 저장되어 있다. 여기서 1000000 마이크로 초가 1초이고 1000 마이크로 초는 1밀리 초다.

 

두 번째 인자인 tz은 사용되고 있지 않으며 복잡하게 생각할 필요 없이 tz은 NULL을 사용하도록 한다.

 

gettimeofday의 예제

#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

int main()
{
    struct timeval mytime;

    // 현재 시간을 얻어온다.
    gettimeofday(&mytime, NULL);
    printf("%ld:%ld\n", mytime.tv_sec, mytime.tv_usec);

    // 시간을 1시간 뒤로 되돌려서 설정한다.
    mytime.tv_sec -= 3600;
    settimeofday(&mytime, NULL);
    return 0;
}

 

time(2)

현재는 time(2)를 대신해서 쓰이고 있으며, 가능한 time(2) 대신 gettimeofday을 사용하는 것을 권장한다.

#include <time.h>

time_t time(time_t *t);

time(2) 함수는 반환하는 시간이 1970년 1월 1일 00:00:00부터 지금까지의 시간을 초단위로 환산한 것이다.

만약 아규먼트로 들어가는 t 가 NULL 이 아니라면 반환값은 t 가 가리키는 메모리에 저장된다.

 

time(2)의 반환값은 현재까지의 흐른 시간을 초 단위로 리턴한다. 애러가 발생할 경우 -1이 리턴된다.

 

time(2)의 예제

#include <time.h>

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

void swaptime(time_t, char *);
int main()
{
    int     i;
    time_t  the_time;
    char buffer[255];

    // 현재 TIME 을 구한다.
    time(&the_time);

    printf("현재 시간은 %d 초\n", the_time);

    // 보기좋은 지역시간대로 바꾼다.  
    swaptime(the_time, buffer);
    printf("%s\n", buffer);
}

void swaptime(time_t org_time, char *time_str)
{
    struct tm *tm_ptr;
    tm_ptr = localtime(&org_time);


    sprintf(time_str, "%d/%d/%d %d:%d:%d",
                    tm_ptr->tm_year+1900,
                    tm_ptr->tm_mon+1,
                    tm_ptr->tm_mday,
                    tm_ptr->tm_hour,
                    tm_ptr->tm_min,
                    tm_ptr->tm_sec);
}

 

 

아규먼트(argument): 함수를 이용하는 사람이 매개변수에 집어넣는 값을 의미

파라미터(parameter): 우리말로 매개변수, 함수를 구현하는 쪽과 사용하는 쪽을 매개하는 변수가 된다.

 

 

 

 

728x90
반응형

'Linux > 개념 실습 프로그래밍' 카테고리의 다른 글

usleep() 함수  (0) 2022.03.17
Comments