用C语言可以得到准确的时间吗? >我知道在C++中有 >代码> STD::HythOrthPrimeSythCalth::No()/Cord>可以获得类型 STD::Time::HythOrthPrimeSythCalth::TimeSyPooS的确切时间。但是,我使用的是原始C语言,因此无法调用此函数。time()函数只能获取二级时间

用C语言可以得到准确的时间吗? >我知道在C++中有 >代码> STD::HythOrthPrimeSythCalth::No()/Cord>可以获得类型 STD::Time::HythOrthPrimeSythCalth::TimeSyPooS的确切时间。但是,我使用的是原始C语言,因此无法调用此函数。time()函数只能获取二级时间,c,time,C,Time,我的最终目标是测量多线程程序的运行时间。clock()函数将所有线程的时钟相加,因此不能用于测量运行时间。以下代码片段将给出准确的系统时间: time_t now; time(&now); struct tm* now_tm; now_tm = localtime(&now); char dte[80]; strftime (dte, 80, "%Y-%m-%d %I:%M:%S", now_tm); 以下代码段将给出准确的系统时间: time_t now; time(&

我的最终目标是测量多线程程序的运行时间。
clock()
函数将所有线程的时钟相加,因此不能用于测量运行时间。

以下代码片段将给出准确的系统时间:

time_t now;
time(&now);
struct tm* now_tm;
now_tm = localtime(&now);
char dte[80];
strftime (dte, 80, "%Y-%m-%d %I:%M:%S", now_tm);

以下代码段将给出准确的系统时间:

time_t now;
time(&now);
struct tm* now_tm;
now_tm = localtime(&now);
char dte[80];
strftime (dte, 80, "%Y-%m-%d %I:%M:%S", now_tm);

不幸的是,不同平台的高分辨率时钟往往有所不同。它还取决于您感兴趣的时钟类型(如实时、CPU时间或单调时间)

基于您的用例,您可能想要单调的时间

如果您使用的是POSIX操作系统,这通常是一种方法,但即使如此,可用的时钟也可能会有很大差异。例如,macOS,但它确实有其他API可用于获取单调时间

如果你在Windows上,你可能会想使用


如果你想通过某种方式来消除差异,我早就说过了。

不幸的是,不同平台的高分辨率时钟往往有点不同。它还取决于您感兴趣的时钟类型(如实时、CPU时间或单调时间)

基于您的用例,您可能想要单调的时间

如果您使用的是POSIX操作系统,这通常是一种方法,但即使如此,可用的时钟也可能会有很大差异。例如,macOS,但它确实有其他API可用于获取单调时间

如果你在Windows上,你可能会想使用


如果您想通过某种方式消除差异,请稍后再联系。

以精确的基准时钟计时,还是以一天中的精确时间计时?无论哪种情况,它都是特定于系统的.POSIX文档,可以执行您想要的操作。@pmg谢谢!似乎我可以使用<代码> TimeSuthGET()/Cuth>获得准确的时间。我知道C++中有<代码> <代码> >代码> STD::HythOrthPrimeSythCalk::/[代码]可以获得类型<代码> STD的确切时间::在任何特定的平台上,C++中没有任何东西能访问比C更精确的时钟。C++的精度比C要高,它们都可以访问相同的底层时钟实现。C++只是在便携式抽象中隐藏精确的实现。时钟在精确的基准时钟中,或者时钟在一天的精确时间内?无论哪种情况,它都是特定于系统的.POSIX文档,可以执行您想要的操作。@pmg谢谢!似乎我可以使用<代码> TimeSuthGET()/Cuth>获得准确的时间。我知道C++中有<代码> <代码> >代码> STD::HythOrthPrimeSythCalk::/[代码]可以获得类型<代码> STD的确切时间::在任何特定的平台上,C++中没有任何东西能访问比C更精确的时钟。C++的精度比C要高,它们都可以访问相同的底层时钟实现。C++只是在可移植的抽象中隐藏了精确的实现,我相信OP的意图不够。OP需要的不仅仅是秒的分辨率,像“百分之六秒”或“2718微秒”这样的分辨率对于OP的意图来说是不够的,我相信。OP需要的分辨率不止一秒,比如“百分之六秒”或“2718微秒”