今晚完成一个小功能,C语言设置下Linux系统时间。代码如下:
#include <errno.h> #include <time.h> #include <sys/time.h> #include <iostream> using namespace std; using std::string; int setSystemTime(string ymd_date, string hms_time) { int flag = 0; struct tm tptr; struct timeval now; string combine_time = ymd_date + hms_time; strptime(combine_time.c_str(), "%Y%m%d%H:%M:%S", &tptr); std::cout << "setSystemTime() Y = " << (1900 + tptr.tm_year) << std::endl; std::cout << "setSystemTime() m = " << (1 + tptr.tm_mon) << std::endl; std::cout << "setSystemTime() D = " << tptr.tm_mday << std::endl; std::cout << "setSystemTime() H = " << tptr.tm_hour << std::endl; std::cout << "setSystemTime() M = " << tptr.tm_min << std::endl; std::cout << "setSystemTime() S = " << tptr.tm_sec << std::endl; now.tv_sec = mktime(&tptr); now.tv_usec = 0; int rc = settimeofday(&now, NULL); if (rc == 0) { printf("设置时间成功!\n"); } else { flag = -1; printf("设置时间失败, 错误号 = %d\n", errno); } return flag; } int main(int argc, char* argv[]) { setSystemTime("20170821","23:58:00"); return 0; }
经测试,代码有效。Cool~
文章的脚注信息由WordPress的wp-posturl插件自动生成