我打電話給微軟的_wspawnv函數,它將errno設置爲22時返回-1; errno.h將其定義爲EINVAL。根據微軟關於_wspawnv的文檔,只有在參數mode
無效的情況下才能返回該代碼。我試着用_P_WAIT和_P_NOWAIT在第一個參數中調用它,並且都返回相同的錯誤。 爲什麼微軟的_wspawnv返回EINVAL?
編輯:令人驚異的是,離開一天後可以解決多少問題。我花了很長時間才意識到第二個參數中的文件名引用了它。把它們拿出來,問題解決了。
道德故事 - 不要相信文檔告訴你所有的事情。我沒有花太多時間仔細檢查文件名,因爲文檔沒有列出它作爲可能的嫌疑,儘管錯誤代碼暗示任何參數可能是無效的。
如果從命令行運行此程序,返回的退出代碼是什麼? (命令完成後,您應該能夠使用echo%ERRORLEVEL%)。 – jdigital 2009-05-28 23:45:27