我正在使用Linux(CentOS 6.3分發與libc-2.12.so)。與時間相關的函數和多線程
不知是否C庫函數time()
,localtime()
,mktime()
可以在多線程環境下使用。
只是一個例子(不一定是我的項目的代碼):
#include <stdio.h>
#include <time.h>
int main()
{
time_t timep;
struct tm *p;
for (int i = 0; i < 1000; ++i)
{
time(&timep);
printf("time() : %d \n", timep);
p = localtime(&timep);
timep = mktime(p);
printf("time()->localtime()->mktime():%d\n", timep);
}
return 0;
}
如果我包裝器使用OpenMP上面的代碼?那就是把它放在多線程環境下。
#include <stdio.h>
#include <time.h>
#include <omp.h>
int main()
{
time_t timep;
struct tm *p;
#pragma omp parallel for
for (int i = 0; i < 1000; ++i)
{
time(&timep);
printf("time() : %d \n", timep);
p = localtime(&timep);
timep = mktime(p);
printf("time()->localtime()->mktime():%d\n", timep);
}
return 0;
}
「/ n」不*與* \ *相同。 – Casey