2017-10-15 76 views
1

我想使用c程序从pcap文件中读取数据包并打印每个数据包的时间戳。如何打印从pcap文件读取的数据包的时间戳?

我使用下面的代码行打印时间戳:

printf("%s,",ctime((const time_t*)&header->ts.tv_sec)); 

而且我的输出如下:

Mon Jan 14 09:48:18 2013 

我如何得到它为YYYY-MM-DD HH :MM:SS如下所示?

2016-02-16 13:14:33.224487 

我是新来c编程,并不知道我在做什么。请帮忙。 谢谢!

+1

2013,真的吗? ;-) – alk

回答

2

您可能会喜欢看localtime()strftime()

#define MYDATE_STR_MAX (<large enough> + 1) 

... 

    struct tm lt = localtime(header->ts.tv_sec); 
    char st[MYDATE_STR_MAX]; 
    strftime(st, MYDATE_STR_MAX, <format specifier as per man-page here>, lt); 
    /* use st here */ 

(包括<time.h>顶部)

+0

它的工作。我用strftime(buff,20,“%Y-%m-%d%H:%M:%S”,localtime(&now)); – user2636662

+0

缺少'strftime的'max'参数;) –

+0

非常感谢!:) – user2636662