IT관련 지식들 2017. 2. 13. 10:52

gettimeofday함수가 posix표준에서 빠지고 새로 생신 함수 clock_gettime함수를 사용하여 디버그에서 시간을 출력해보았다.


예제


#include <stdio.h>

#include <time.h>


//------------------------------------------------------------------------------

// 설명 : 디버그 프린트

//------------------------------------------------------------------------------

int debug_printf( const char *fmt, ... )

{

va_list ap;

int len;


struct timespec time;

struct tm *ptm;


if ( 0 == clock_gettime( CLOCK_REALTIME, &time)) {

ptm = localtime(&time.tv_sec);

printf("%02d%02d%02d%02d%02d%02d]",(ptm->tm_year%100), ptm->tm_mon+1, ptm->tm_mday

, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);

}


va_start(ap, fmt);

len = vprintf(fmt, ap);

va_end(ap);

return len;

}


아래는 각 함수의 선언부분을 찾아봤다. clock_gettime함수는 second, ms에 ns까지 구할 수 있다.

#include <time.h>
int clock_gettime(clockid_t clock_id, struct timespec *tp);
    struct timespec {
            time_t   tv_sec;        /* seconds */
            long     tv_nsec;       /* nanoseconds */
    };
--------------------------------------------------------------
#include <sys/time.h>
int gettimeofday(struct timeval *restrict tp, void *restrict tzp);
    struct timeval {
            time_t      tv_sec;     /* seconds */
            suseconds_t tv_usec;    /* microseconds */
    };



출처: http://sunyzero.tistory.com/161 [IT 지식 창고]

posted by 동글동글82
: