[질문] strptime 함수에 관해서..
글쓴이: leolo / 작성시간: 일, 2004/12/19 - 12:29오후
#include <time.h> #include <stdio.h> #include <time.h> int main() { struct tm tms; char *buffer = "03/22/99"; strptime(buffer, "%x", &tms); printf("days of year: %d\n", tms.tm_yday); return 0; }
위 코드를 -Wall 옵션으로 컴파일 하면.
아래와 같이 warning이 뜹니다. 물론, 앞에다 함수의 형을 선언하면 나타나지 않습니다. 형 선언 이외에 다른 방법은 없나요.
레드헷 9.0입니다.
[ering@localhost test]$ gcc -o c c.c -Wall
c.c: In function `main':
c.c:8: warning: implicit declaration of function `strptime'
한가지 더 질문이 있습니다.
예를 들어 120초가 있는데요. 이 것을 00:00:00 포멧으로
변경하고 싶은데 어떻게 하면 되죠..
제가 해봤는데요..
아래와 같이 하면 시간 단위에서 -9를 해야 정상적으로 되더군요.
이유를 잘 모르겠습니다.
#include <stdio.h> #include <time.h> int main() { char tel_time[128]; int tel; struct tm rp, *tp; time_t time; char *time_format = "%X"; tel = 123; time = (time_t)tel; tp = localtime_r(&time, &rp); memset(tel_time, 0x00, (sizeof(char)*128)); sprintf(tel_time, "%02d:%02d:%02d", rp.tm_hour, rp.tm_min, rp.tm_sec); printf("tel[%s] \n", tel_time); memset(tel_time, 0x00, (sizeof(char)*128)); sprintf(tel_time, "%02d:%02d:%02d", rp.tm_hour - 9, rp.tm_min, rp.tm_sec); printf("tel[%s] \n", tel_time); return 0; }[/code]
Forums:
소스에 #include <time.h> 가 두번씩이나 ^^
소스에 #include <time.h> 가 두번씩이나 ^^
그 경고는 #define _XOPEN_SOURCE 으로 해결됩니다.
glibc2와 관련된 건데 자세한건 구글링..;; (점심 먹으러 가야 합니다 =3)
컴파일 시.. -D_XOPEN_SOURCE 옵션을 주면..
컴파일 시.. -D_XOPEN_SOURCE 옵션을 주면..
간단하게 만든 테스트 프로그램에서는 됩니다.
그런데, 소스에 적용시키면 다른 에러가 잔뜩 나타나서..
쩝..
실력이 있으면 삶이 편하다... 영차 영차...
implicit declaration of function 'strptime' warning
#include 전에 #define __USE_XOPEN과 #define _GNU_SOURCE을 선언해 주면 waring이 없어 집니다.
관련 링크는 아래와 같습니다.
https://stackoverflow.com/questions/15334558/compiler-gets-warnings-when-using-strptime-function-c
implicit declaration of function 'strptime' warning 오타 수정
오타가 나서 정정 합니다. #define __USE_XOPEN과 #define _GNU_SOURCE 은 #include 전에 선언 해 줍니다.
댓글 달기