今晚完成一个小功能,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插件自动生成
微信扫一扫,打赏作者吧~![[整理][转载]win下网卡抓包发包库Npcap使用](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2023/08/demo_1-1024x711.jpg&w=280&h=210&zc=1)
![[转载]基础数据char,int,double,string是线程安全的吗?](http://www.jyguagua.com/wp-content/themes/begin/img/random/3.jpg)
![[整理]用c++编写的RDTSC性能计时器](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2020/12/rdtsc-assembly-example.jpg&w=280&h=210&zc=1)
![[整理]strcmp汇编写法](http://www.jyguagua.com/wp-content/themes/begin/img/random/5.jpg)