啓動進程時命令行超長會引起奇怪的異常

現象:

我們一個版本的測試中在一個程序A中嵌入調用另外一個程序B,卻發現程序B總是自動異常退出。

而之前的版本中,參數傳遞的長度是一樣的,程序B卻能正常運作。

 

幾經周折,終於發現是由於傳遞的命令行參數過長所致。

教訓:

被啓動程序B的路徑 + 命令行參數 <= MAX_PATH

如:

c:\test.exe aaa

總長度是15,沒問題,但如果此長度超過了MAX_PATH,則會有可能引起test.exe進程的異常。

 

注:

目標程序運行後並不是在所有情況下都會異常,估計也跟超過的長度有關係,所以目前也在傳遞長參數命令行的朋友發現自己的程序運行正常,請不要得意,儘快調整傳遞方式吧。

 

 

發佈了36 篇原創文章 · 獲贊 24 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章