为什么微软的_wspawnv会返回EINVAL?

时间:2009-05-28 23:11:17

标签: windows visual-c++ spawn

我正在调用Microsoft的_wspawnv函数,它在errno设置为22的情况下继续返回-1; errno.h将此定义为EINVAL。根据Microsoft的_wspawnv文档,只有在mode参数无效时才能返回此代码。我试过在第一个参数中用_P_WAIT和_P_NOWAIT调用它,并且都返回相同的错误。

<小时/> 编辑:令人惊讶的是,离开一天可以解决多少问题。我花了很长时间才意识到第二个参数中的文件名引用了它。把它们拿出来,问题就解决了。

故事的道德 - 不要相信文档告诉你一切。我没有花太多时间仔细检查文件名,因为文档没有将其列为可能的嫌疑人,即使错误代码暗示任何参数可能无效。

1 个答案:

答案 0 :(得分:2)

奇怪的是,documentation还指出:

  

如果允许继续执行,这些函数将errno设置为EINVAL,并返回-1。没有产生新的过程。

应该信任多少?

此外,它不应该返回EINVAL。它将errno设置为EINVAL。