c 시간 함수

2022. 8. 13. 23:36Programming Language/C

  • 시간 관련 함수들의 관계

- broken down time은 시간을 나타내는 문자열
- localtime과 gmtime의 차이는 타임존
- ctime과 asctime의 차이는 인자

내가 겪은 시간 함수 관련 문제

  • mktime 함수
    strptime으로 얻은 tm구조체를 time_t형으로 변환하려고 mktime을 썼는데 tm에 년, 월, 일, 시만 채우고 mktime을 호출하니 다른 환경에서는 정상적으로 실행되는데 내 pc 특정 파일에서만 안됐다…
    뭐지??? 했는데 분, 초 까지 채우니까 된다.
  • localtime 함수
    localtime 함수는 struct tm으로 선언된 전역변수에 값을 채우고 그 주소를 리턴한다.
    여러 번 호출해도 한 변수만 사용하므로 여러 번 호출할 경우 주의해야된다.

    c에는 이렇게 전역변수 or static 변수의 주소를 리턴해서 함수 외부에서도 사용 가능하게 하는 기법이 자주 쓰인다.
  • implicit declaration of function ‘strptime’
    strptime 함수를 사용하면 gcc로 컴파일 시 "implicit declaration of function ‘strptime’..." 이런 경고가 뜹니다.
    man 페이지를 보면 #define _XOPEN_SOURCE 를 추가하라고 되어있던데 이유는 모르겠지만 제 개발환경에서는 안됐습니다.
    그래서 구글링을 해보니 __USE_XOPEN과 _GNU_SOURCE를 #include 위에 정의해주면 된다고 합니다.
    #define __USE_XOPEN
    #define _GNU_SOURCE
    관련 글: https://stackoverflow.com/questions/15334558/compiler-gets-warnings-when-using-strptime-function-c

'Programming Language > C' 카테고리의 다른 글

array decay  (0) 2022.07.08
[팁] 필요한 헤더파일 찾는 방법  (0) 2022.07.03
[C] C언어 배우기  (0) 2022.03.24
[C] memset, 배열 초기화  (0) 2021.10.01
[C] 비트맵 파일을 아스키 아트로 변환하기  (0) 2021.09.30