Почему _wspawnv от Microsoft возвращает EINVAL? - PullRequest
1 голос
/ 29 мая 2009

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


Редактировать: Удивительно, сколько проблем можно решить, уйдя на день. Мне не потребовалось много времени, чтобы понять, что имя файла во втором параметре заключено в кавычки. Взял их, проблема решена.

Мораль истории - не доверяйте документации, чтобы рассказать вам все. Я не тратил много времени на повторную проверку имени файла, потому что в документации не указывалось, что это возможно, хотя код ошибки подразумевает, что любой параметр может быть недопустимым.

1 Ответ

2 голосов
/ 29 мая 2009

Как ни странно, документация также гласит:

Если выполнение может продолжаться, эти функции устанавливают для errno значение EINVAL и возвращают -1. Никакого нового процесса не создается.

Сколько из этого следует доверять?

Кроме того, он не должен возвращать EINVAL. Это устанавливает errno в EINVAL.

...