timeStruct @0x13b123b0 tm
tm_hour 0 int
tm_isdst 0 int
tm_mday 1 int
tm_min 0 int
tm_mon 0 int
tm_sec 33 int
tm_wday 4 int
tm_yday 0 int
tm_year 70 int
這是我的結構,由QTcreators記憶手錶代表。mktime返回-1,但我期待我的tm結構是有效的
與此作爲參數的mktime()
struct tm *timeStruct;
//[...]
time_t timeOrigin = mktime(timeStruct);
timeOrigin
呼叫變爲-1。
這裏有很多問題問出來的一樣。
但他們都被提示得到解決,該tm_year字段不爲自1970年以來年,但年自1900年以來,我意識到這一點,也尊重它。
什麼混淆我進一步爲:
手冊頁想:http://linux.die.net/man/3/mktime
解釋mktime不改變結構的成員,如果它返回-1。在我的情況下,它確實在之前的情況下調整了tm_wday
和tm_yday
,而返回-1。
我不能閱讀標準錯誤,之後返回mktime藏漢-1
找到有關這個任何錯誤。
那麼這裏發生了什麼?
「如果指定的破舊時間不能被表示爲日曆時間(秒從epoch),mktime()返回(time_t的)-1和不改變破舊時間結構的成員」。但是,也許我從背景中讀出它。但無論如何,我的問題在於它。 – dhein
現在我明白了:你錯誤地引用了它。 –
@WeatherVane:所以它屬於不給我的上下文嗎? (在這種情況下,我會把這些信息拿出來) – dhein