在Linux中,我可以使用以下命令找到当前时间(以毫秒为单位):
date +%s%N
Run Code Online (Sandbox Code Playgroud)
但是在FreeBSD上,我只得到了
[13:38 ]#date +%s%N
1299148740N
Run Code Online (Sandbox Code Playgroud)
如何在FreeBSD中获得以毫秒(或纳秒)为单位的时间?
BSD date命令不支持毫秒.如果您需要date毫秒级支持,请安装GNU coreutils软件包.
我在OS X上遇到过这个问题,它date来自BSD.解决的办法是brew install coreutils和ln -sf /usr/local/bin/gdate $HOME/bin,并确保$HOME/bin先出现PATH.
使用gettimeofday(),例如:
#include <stdio.h>
#include <sys/time.h>
int main(void)
{
struct timeval time_now;
gettimeofday(&time_now,NULL);
printf ("%ld secs, %ld usecs\n",time_now.tv_sec,time_now.tv_usec);
return 0;
}
Run Code Online (Sandbox Code Playgroud)