K 개발자

시간 관리 함수 본문

유닉스(Unix)/시스템 프로그래밍

시간 관리 함수

ddingz 2021. 8. 17. 17:47

시간 관리 함수

유닉스 시스템은 1970년 1월 1일 0시 0분 0초(그리니치 표준시, UTC 시간대)부터 현재까지 경과한 시간을 초 단위로 저장하고, 이를 기준으로 시간 정보를 관리한다.


기본 시간 정보 확인

초 단위로 현재 시간 정보 얻기 : time(2)

#include <sys/types.h>
#include <time.h>

time_t time(time_t *tloc);
// tloc : 검색한 시간 정보를 저장할 주소

마이크로 초 단위로 시간 정보 얻기 : gettimeofday(3)

#include <sys/time.h>

int gettimeofday(struct timeval *tp, void *tzp);

int settimeofday(struct timeval *tp, void *tzp);
// tp : 시간 정보 구조체 주소, tzp : 시간대

시간대 정보

시간대 설정 : tzset(3)

#include <time.h>

void tzset(void);

시간의 형태 변환

시간 정보 분해 : tm 구조체

초 단위 시간 정보를 년, 월, 일로 분해해 저장할 때 tm 구조체를 사용한다.
tm 구조체는 <iso/time_iso.h> 파일에 정의되어 있다.

struct tm {
    int tm_sec;
    int tm_min;
    int tm_hour;
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst;
};

초 단위 시간 정보 분해 : gmtime(3), localtime(3)

#include <time.h>

struct tm *localtime(const time_t *clock);
struct tm *gmtime(const time_t *clock);
// clock : 초 단위 시간 정보를 저장한 주소

초 단위 시간으로 역산 : mktime(3)

#include <time.h>

time_t mktime(struct tm *timeptr);
// timeptr : 시간 정보를 저장한 tm 구조체 주소

형식 지정 시간 출력

초 단위 시간을 변환해 출력하기 : ctime(3)

#include <time.h>

char *ctime(const time_t *clock);
// clock : 초 단위 시간 정보를 저장한 주소

tm 구조체 시간을 변환해 출력하기 : asctime(3)

#include <time.h>

char *asctime(const struct tm *tm);
// tm : 시간 정보를 저장한 tm 구조체 주소

출력 형식 기호를 사용해 출력하기 : strftime(3)

#include <time.h>

size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr);
// s : 출력할 시간 정보를 저장할 배열 주소, maxsize : s의 크기, fortmat : 출력 형식을 지정한 문자열, timeptr : 출력할 시간 정보를 저장한 구조체 주소

'유닉스(Unix) > 시스템 프로그래밍' 카테고리의 다른 글

프로세스 식별  (0) 2021.08.17
프로세스의 개념  (0) 2021.08.17
사용자 관련 정보 검색  (0) 2021.08.16
시스템 관련 정보 검색과 설정  (0) 2021.08.16
디렉토리 관련 함수  (0) 2021.08.16
Comments