ctime으로 시간을 구했는데 정확한 값이 아닌 이유가 뭘까요??

koogoon의 이미지

안녕하세요.

자꾸 허접한 질문 올려서 죄송합니다만

(여기 올리는 거 맞나요?)

아래글에서 보다시피

임베디드리눅스 pxa255pro1을 가지고

텍스트lcd디바이스드라이버를 이용한 시계 소스 작성 중

시간 구하는 중인데요

ctime(ltime);

today = localtime(&ltime);

year = today->tm_year;
month = today->tm_mon ;
day = today->tm_mday;
hour = today->tm_hour;
min = today->tm_min;
sec = today->tm_sec;

이런식으로 하니깐 정확한 값이 들어가지 않는데요

뭐가 잘못 된건지 잘 모르겠습니다.

조언 부탁드립니다. ^^

albamc의 이미지

프로그래밍 QnA란이 더 적합한듯 합니다.

하지만 그전에 man page를 좀더 꼼꼼히 읽어 보셔야 할듯 합니다.

ctime은 시간을 구하는 함수가 아닙니다.

이미 얻은 시간값을 ASCII 형으로 변환해 주는 함수입니다.

시간값은 man 2 time을 하면 얻는 방법이 나와있습니다.

^^*

myohan의 이미지

/*********************************************************************************
 * Desc : 지금 시간을 구하는 함수
 * Argu : void
 * Return : 지금 시간
 * Note : YYYY-MM-DD HH:MM:SS
**********************************************************************************/
char *now_time(void)
{
    time_t the_time;
    struct tm *ptm;
    char *buf;

    time(&the_time);
    ptm = localtime(&the_time);
    buf = malloc(sizeof(char) * 32);

    sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", ptm->tm_year + 1900, ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);

    return buf;
}

전 이런식으로 사용합니다 :P

---------------------------------------
blog : http://myohan.egloos.com