これら2つの機能の違いはどれですか? MinGW 4.8.0 を使用しています。
私はそれgmtime_r
がスレッドセーフであることを知っています(ただし、同じスレッドから複数回呼び出された場合は安全ではありません)が、理解できませんgmtime_s
これら2つの機能の違いはどれですか? MinGW 4.8.0 を使用しています。
私はそれgmtime_r
がスレッドセーフであることを知っています(ただし、同じスレッドから複数回呼び出された場合は安全ではありません)が、理解できませんgmtime_s
違いは、それgmtime_r(3)
が標準の SUSv2 関数であることです。gmtime_r()
Windows 環境で最も近いのはgmtime_s()
で、引数が逆になっています。
gmtime_r(const time_t*, struct tm*)
gmtime_s(struct tm*, const time_t*)
基本的に、どちらも時間値をtm
構造体に変換します。gmtime_r
次に、この構造体へのポインターを返します (NULL
失敗した場合)。一方、成功した場合は をgmtime_s
返し、失敗した場合は a を返します。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 */
};