Я вызываю функцию _wspawnv от Microsoft, и она продолжает возвращать -1 с errno, равным 22; errno.h определяет это как EINVAL. Согласно документации Microsoft для _wspawnv, этот код следует возвращать, только если параметр mode
недействителен. Я попытался вызвать его с _P_WAIT и _P_NOWAIT в первом параметре, и оба возвращают ту же ошибку.
Редактировать: Удивительно, сколько проблем можно решить, уйдя на день. Мне не потребовалось много времени, чтобы понять, что имя файла во втором параметре заключено в кавычки. Взял их, проблема решена.
Мораль истории - не доверяйте документации, чтобы рассказать вам все. Я не тратил много времени на повторную проверку имени файла, потому что в документации не указывалось, что это возможно, хотя код ошибки подразумевает, что любой параметр может быть недопустимым.