Microsoftの_wspawnv関数を呼び出していますが、errnoを22に設定すると-1が返され続けます。errno.hは、これをEINVALとして定義します。_wspawnvに関するMicrosoftのドキュメントによると、このコードは、mode
パラメータが無効な場合にのみ返される必要があります。最初のパラメーターに_P_WAITと_P_NOWAITを指定して呼び出してみましたが、どちらも同じエラーを返します。
編集: 1日離れることで解決できる問題の数は驚くべきものです。2番目のパラメーターのファイル名の前後に引用符が含まれていることに気付くのにそれほど時間はかかりませんでした。それらを取り出し、問題は解決しました。
話の教訓-すべてを伝えるためのドキュメントを信用しないでください。エラーコードがパラメータが無効である可能性があることを示唆していても、ドキュメントに疑わしいものとしてリストされていないため、ファイル名を再確認するのに多くの時間を費やしませんでした。