Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

Year 2038 Problem

Posted on 2006 年 7 月 22 日2021 年 3 月 12 日 By 日落 在〈Year 2038 Problem〉中尚無留言

在 C 語言裡面,時間是以一個有號的整數儲存。若是呼叫 time() 函式,則會回傳一個整數,這個整數代表:從格林威治時間 1900 年 1 月 1 日 0 時 0 分 0 秒到現在時間的秒數。

標準的C語言編譯器中,整數 int 的大小為 232,因為是有號數,所以整數的範圍是從 -231 到 231-1。

距離1900年越久,time()函數所傳回的秒數也會越大,當超過 231-1時,就會產生溢位(over flow),此時計數器就會發生問題。而 231-1 為 2147483647,正是到 2038 年 1 月 19 日的秒數,所以那些以C語言為主撰寫出來的作業系統,如:Unix,都會掛彩。

參考資料:
http://en.wikipedia.org/wiki/Year_2038_problem
http://computer.howstuffworks.com/question75.htm

Tags:程式設計, 資訊學習

文章導覽

Previous Post: 微軟員工是否喜歡自己的公司咧?
Next Post: PHP 中使用不同編碼連接 MySQL

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.