Ich rufe Microsofts _wspawnv-Funktion auf, und es gibt immer -1 zurück, wobei errno auf 22 gesetzt ist; errno.h definiert dies als EINVAL. Laut Microsoft-Dokumentation für _wspawnv sollte dieser Code nur zurückgegeben werden, wenn der Parameter mode
ungültig ist. Ich habe versucht, es mit _P_WAIT und _P_NOWAIT im ersten Parameter aufzurufen, und beide geben den gleichen Fehler zurück. Warum gibt Microsoft _wspawnv EINVAL zurück?
Bearbeiten: Es ist erstaunlich, wie viele Probleme gelöst werden können, indem Sie für einen Tag weggehen. Es dauerte nicht lange, bis ich erkannte, dass der Dateiname im zweiten Parameter in Anführungszeichen gesetzt war. Nahm sie heraus, Problem gelöst.
Moral der Geschichte - traue der Dokumentation nicht, dir alles zu erzählen. Ich habe nicht viel Zeit damit verbracht, den Dateinamen zu überprüfen, weil die Dokumentation ihn nicht als möglichen Verdächtigen aufgelistet hat, obwohl der Fehlercode implizierte, dass irgendein Parameter ungültig sein könnte.
Was ist der Exit-Code, der zurückgegeben wird, wenn Sie dieses Programm über die Befehlszeile ausführen? (Nach Abschluss des Befehls sollten Sie echo% ERRORLEVEL% verwenden können). – jdigital