Creative Commons License

과거을 달리는 time함수2 IT



과거를 달리는 time함수

이래저래 정보를 찾아보면서 윤초 이야기가 나왔지만 윤초라고 해봤자 1초 정도 시간이 안 가는 것인데, 서버에 남겨진 로그를 보면 약 4천초 정도 중장거리 슛을 뛰는 듯 하다. 옆에 시간을 찍는 것도 time함수로 받아와서 하는 것인데... 알 수가 없구먼...

[2009-01-21 22:16:02] [Time hopping begin: 1232543762 end: 1232548160 diff: 4398]
[2009-01-21 22:16:03] [Time hopping begin: 1232548160 end: 1232543763 diff: -4397]


위 UNIX값을 KST로 바꾸면 아래와 같다.
1232543762 - 2009/01/21 22:16:02
1232548160 - 2009/01/21 23:29:20
1232543763 - 2009/01/21 22:16:03


얼추 로그 앞부분에 찍는 시간은 처음에 begin값과 비슷한데, 우째서 end값이 4천초 이상 갑툭튀냐; 것도 바로 다음에 원복되고... 미치겠네 그냥... ㅡ,.-) gettimeofday로 찍어볼까... 똑같을라나... 리눅스에서 time을 gettimeofday로 구현했을라나... 아놔...



덧글: 시그널을 이용하는 timer_create 함수를 이용하는 방법도 있긴 한데, 그렇게 까지 정확도를 요구하는 것도 아닐 뿐더러 시그널 이용시 고려해야할 점이 time(NULL)보다 필요 이상으로 많기에 굳이 timer_create로 넘어가지 않고 있다.

덧글2: 이러면 미래를 달렸다가 과거로 돌아오니, "시간을 달리는"이라고 적어야하나?

덧글

  • 가짜집시 2009/01/22 12:22 #

    1. 프로그램 자체로 논리적인 문제가 없다면, NTP 같은 걸로 OS 차원에서 시간을 변경하고 있을 가능성이 있지 않을까요? 어떤 이유로 잘못된 시간이 들어오고 있거나, 혹은 머신 자체의 시간이 잘못 흘러가고 있어서 옳은 시간으로 변경되고 있거나 말이죠.

    2. diff 값이 부호만 다르고 값이 1초 차 밖에 나지 않는 데 눈이 가네요.
  • 샘이 2009/01/22 12:49 #

    ( __) 답변 감사드립니다. 굽신굽신.

    1. NTP를 쓰긴 하는데 데몬이 알아서 돌게 놔두지 않고, 정해진 시간에 cron이 돌게 해두었습니다. 하지만 저 시간은 cron이 돌 시간이 아니라서 NTP문제는 제외하고 있습니다. (NTP관련 로그도 해당 시간에 안 쌓여 있는 걸 보면)

    2. t0와 t0+1 사이에 4천초 정도가 갑툭튀 했다가 원복한 것이지요. 정말 아리송~합니다...
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

Google Adsense

Google Adsense

Google Analytics



C로그팬박스