我正在創建一個應用程序,我需要創建多個文件夾並創建文件夾。爲什麼使用mkdir()函數比使用系統('mkdir path')快得多?
要做最優化,然後我意識到mkdir()比系統('mkdir path')快很多;
有誰知道原因?
我正在創建一個應用程序,我需要創建多個文件夾並創建文件夾。爲什麼使用mkdir()函數比使用系統('mkdir path')快得多?
要做最優化,然後我意識到mkdir()比系統('mkdir path')快很多;
有誰知道原因?
system ("mkdir path");
調用一個程序mkdir
,這是一個新的過程,它所蘊含的一切都會產生。
mkdir()
只是調用系統例程。
mkdir()
調用man 2 mkdir
記錄的系統調用。該功能在相同的過程中運行。
system('mkdir path')
叉它運行mkdir
命令一個新的過程,由man 1 mkdir
記載,其儘管相同的名稱是一個單獨的命令,提供了一個命令行界面來mkdir
系統調用。
從外殼調用mkdir
有負載開銷(shell本身,產生一個新的進程,等),直到它最後直接mkdir()
電話通話中相同的內核代碼。
Linux是否運行mkdir命令而不是'sh -c mkdir'? – 2014-09-13 19:54:35
「Linux」無法確定要運行什麼。 Perl的system()調用完全控制了執行的內容以及如何執行。你的問題的答案可以在perlfunc手冊頁中對system()函數的描述中找到。 – 2014-09-13 19:58:36
'system'函數將其參數傳遞給系統shell以執行。 – chepner 2014-09-13 20:14:48