作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
这两个函数有什么区别?我正在使用 MinGW 4.8.0。
我知道 gmtime_r
是线程安全的(但如果从同一个线程多次调用则不安全)但我不明白 gmtime_s
最佳答案
区别在于gmtime_r(3)
是 standard SUSv2 function .在 Windows 环境中,您可以找到最接近 gmtime_r()
的是 gmtime_s()
,它的论点颠倒了:
gmtime_r(const time_t*, struct tm*)
gmtime_s(struct tm*, const time_t*)
基本上,它们都将时间值转换为 tm
结构。 gmtime_r
然后返回一个指向这个结构的指针(如果失败则返回 NULL
),而 gmtime_s
如果成功则返回 0
,和一个 errno_t
以防失败。
tm
结构具有以下主体,从上面列出的两个文档中可以看出:
struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
关于c++ - gmtime_r 和 gmtime_s 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19051762/
这两个函数有什么区别?我正在使用 MinGW 4.8.0。 我知道 gmtime_r 是线程安全的(但如果从同一个线程多次调用则不安全)但我不明白 gmtime_s 最佳答案 区别在于gmtime_r
我正在尝试使用 std::chrono::time_point 将当前年份存储在 1970 年之前的日期中,但是我遇到了一个关于从其内容读取到 std::tm 的问题结构。 我转换 time_poin
我是一名优秀的程序员,十分优秀!