如何在FreeBSD中获得以毫秒为单位的时间?

ila*_*lex 7 shell freebsd

在Linux中,我可以使用以下命令找到当前时间(以毫秒为单位):

date +%s%N
Run Code Online (Sandbox Code Playgroud)

但是在FreeBSD上,我只得到了

[13:38 ]#date +%s%N
1299148740N
Run Code Online (Sandbox Code Playgroud)

如何在FreeBSD中获得以毫秒(或纳秒)为单位的时间?

Ant*_*emi 7

BSD date命令不支持毫秒.如果您需要date毫秒级支持,请安装GNU coreutils软件包.

我在OS X上遇到过这个问题,它date来自BSD.解决的办法是brew install coreutilsln -sf /usr/local/bin/gdate $HOME/bin,并确保$HOME/bin先出现PATH.


Eel*_*vex 4

使用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)

  • 这是一道shell问题,不是C问题。 (4认同)