4
對於在/tmp
, 中創建臨時目錄的任務,對於便攜式代碼,您將如何在mkdtemp
,mkstemp
等之間進行選擇?什麼是安全創建臨時目錄的POSIX函數?
對於在/tmp
, 中創建臨時目錄的任務,對於便攜式代碼,您將如何在mkdtemp
,mkstemp
等之間進行選擇?什麼是安全創建臨時目錄的POSIX函數?
我認爲您需要在其他用戶可能具有寫入權限的目錄內創建臨時目錄。
作爲管理員,您應該進行設置,以便每個用戶都有自己的TMPDIR
(例如pam-tmpdir - 或者更好,per-process namespaces,但需要更多設置)。然而,作爲應用程序編寫者,您不能假設這一點,所以您需要應對世界可寫的/tmp
。
這裏的正確功能是mkdtemp
,因爲mkstemp
只能創建常規文件。 mkdtemp
僅在POSIX.1 2008中引入,因此原則上它可能不適用於所有POSIX平臺。但是,它已經可以在各大平臺上很長一段時間:
所以在實踐中,您可以安全地使用mkdtemp
。如果您需要回退,請在您的源代碼中包含OpenBSD實現。