1

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


编辑:令人惊讶的是,离开一天可以解决多少问题。我很快就意识到第二个参数中的文件名有引号。拿出来,问题就解决了。

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

4

1 回答 1

2

奇怪的是,文档还指出:

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

应该信任多少?

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

于 2009-05-28T23:51:13.660 回答