시간 구하기..
글쓴이: 김학수 / 작성시간: 토, 2003/04/19 - 6:10오후
현재 날짜보다 X일 늦은 시간을 구하고 있습니다.
형식은 YYYYMMDD 이구요..
소스는....
main() { int dd = 5; unsigned long prvtm; char tmformat[9]; struct tm *t; char date_val[10]; time(&prvtm); prvtm -= (86400 * dd); t = localtime(&prvtm); ascftime(tmformat, "%Y%m%d", t); sprintf(date_val, tmformat); printf("TIME : [%s] \n", date_val); }
입니다..
컴파일을 시키니...
time(&prvtm); 이부분과
t = localtime(&prvtm); 이쪽에서 아래와 같은 에러가 나옵니다..
물론 컴파일은 되죠.. ㅡㅡ;;
warning: argument #1 is incompatible with prototype:
prototype: pointer to long : "/usr/include/iso/time_iso.h", line 91
argument : pointer to unsigned long
문제가 무엇인가요?제게 가르침을.....
그리고 위의 에러가 코어덤프를 생성시킬수 있는 문제인지.. ㅡㅡ;;
Forums:
문제가 있네요
unsigned long prvtm;
time(&prvtm);
이렇게 하면 prvtm에는 garbage data가 있을테니 문제가 되겠죠?
그냥 시간 구할려면 time_t now = time(NULL);
이런식으로 하면 now에 초단위 시간이 들어가구요(1970년 1월 1일 0시 던가요? 이때 부터 몇초 지났는지)
localtime이나 ctime등으로 원하는 데이터 형으로 고치면 되겠네요
음. 그런 문제가 있었군요. 소스 수정하겠습니다. 감사합니다. (
내용이 없어요.^^:;
[code:1]unsigned long prvtm; char tmfo
time() 함수에 대한 프로토타입과 맞지 않아서 발생한 에러입니다.
헤더에는
time_t time(time_t *t)
이렇게 선언되 있을것입니다.
헤더에 정의된 데로 prvtm 을
time_t prvtm;
으로 정의하면 됩니다.
from saibi
댓글 달기