c 시간 함수
2022. 8. 13. 23:36ㆍProgramming 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 |