」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > os.FileMode 在設定標誌之前如何轉換權限?

os.FileMode 在設定標誌之前如何轉換權限?

發佈於2024-11-19
瀏覽:923

How Does os.FileMode Convert Permissions Before Setting Flags?

設定Flags之前os.FileMode如何轉換權限

最初關注

使用時使用時使用八進位或十進制數的os.FileMode 函數,產生的檔案權限似乎並不總是與預期行為相符。具體來說,傳遞十進制數(不含前導零)會導致與傳遞八進制等效值不同的檔案屬性。

轉換邏輯

os.FileMode 接受整數作為輸入並在內部將其表示為 32 位元無符號整數。 9 個最低有效位元對應 Unix 檔案權限,而其餘 12 位元未使用。將八進位數轉換為整數時,如果該數字先前導零 (“0”) 開頭,則語言規範會將其解釋為基數 8。否則,它將將該數字解釋為基數 10。

範例

考慮表示權限「rwx-----」的八進制數「0700」。

  • 將「0700」傳遞給 os.FileMode 將導致設定正確的權限。
  • 將“700”(不帶前導零)傳遞給 os.FileMode 也將導致設定設定正確的權限,因為語言規範會自動將其解釋為八進制,因為它以數字開頭。
  • 將「1274」(「0700」的十進位表示形式)傳遞給 os.FileMode 將導致錯誤的權限放。這是因為語言規範將“1274”解釋為以 10 為基數的數字。

附加說明

os.FileMode 表示中未使用的 12 位元表示特殊檔案功能。但是,這些與基本檔案權限無關。

版本聲明 本文轉載於:1729743262如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3