我正在製作Windows應用程序,其purpouse是通知我我的連接停機時間,並將它們記錄下來供以後使用/報告。現在我使用批處理腳本實現相同的目標,並將其納入項目的想法,但當我調查這個問題時,我碰到了多個建議,我應該not ever use system
within any of my C++ programs。大多數時候,原因是'它是特定的'和'資源要求'我有想法,但我想知道:爲什麼它不好,我使用system
如果我的意圖是要單獨製作應用程序對於Windows操作系統,特別是如果它將輕量級程序,將在後臺工作?爲什麼'系統'不應該用於Windows特定的應用程序
編輯: 我想這需要澄清,讓更多來源:
-
- 這是一個非常昂貴和資源重函數調用
- 這是不可移植:使用system()使程序非常不可移植,即僅適用於在系統級別具有暫停命令的系統,如DOS或W INDOWS。但不是Linux,MAC OSX和其他大多數。
I strongly disagree with using the system function (太長,這裏引用)
-
- 系統()是不夠靈活。 (與我一起)
- 它不提供對正在執行的命令的控制。 (對我來說,我只需要腳本的返回值)
- 它不是平臺獨立的。 (現在,這將是一個問題,我真的很喜歡看到一個例子,它在不同的平臺上表現不同)
- 這是一個安全問題。 (同樣,這將是一個問題。有人可以提供一個潛在的安全問題與系統()?一個例子)
- 系統()是不夠靈活。 (與我一起)
其中的一些參數是不相關的我的項目,現在所以我不介意他們在這個特殊情況下,但結合我所讀到的所有這些擔憂似乎表明,應該不惜一切代價避免使用system()
電話。所以我想我應該使用另一種方法(我發現了一堆),但它們都對我來說似乎有點太複雜了至少(即:this,而不是隻附加我已經funcioning整個腳本,這是大約一半該長度(25線))
永遠不要相信建議告訴你「永遠不要做點什麼」 –
「多種建議」,比如什麼?來自哪裏?資源?引文?我們邀請哪些人在這裏發表評論。 – EJP
你的問題中的鏈接似乎回答你的問題。 – nefas