#include <iostream> #include <chrono> #include <thread> #include <functional> #include <uuid/uuid.h> using namespace std; static char *dtValue=(char*)malloc(20); static char *uuidValue = (char *)malloc(40); static int num=0; char *getTimeNow(); char *getUuid3(); void timerStart(function<void(void)> func,unsigned int interval) { thread([func,interval](){ while(true) { func(); this_thread::sleep_for(std::chrono::milliseconds(interval)); } }).detach(); } void printTimeNow() { cout<<"Now is "<<getTimeNow()<<",and uuid ="<<getUuid3()<<endl; } char *getTimeNow() { time_t rawTime = time(NULL); struct tm tmInfo = *localtime(&rawTime); strftime(dtValue, 20, "%Y%m%d%H%M%S", &tmInfo); return dtValue; } char *getUuid3() { uuid_t newUUID; uuid_generate(newUUID); uuid_unparse(newUUID, uuidValue); return uuidValue; } int main() { timerStart(printTimeNow,2000); while(1); }
int main() { while(1) { printTimeNow(); this_thread::sleep_for(chrono::milliseconds(1000)); } }
Compile:
g++ -g h2.cpp -o h2 -lpthread -luuid
Run ./h2