如何使用_spawn或_exec对引导?
-
21-09-2019 - |
题
写入下述程序之后,它不会出现将参数传递给被叫应用。虽然研究 _spawnv 和它能做什么, _execvp 发现的似乎是一个合适的选择。有谁看到在源代码中的问题,并知道需要做些什么来解决这个问题?
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
int main(int argc, char** argv)
{
int index;
char** args;
args = (char**) malloc((argc + 1) * sizeof(char*));
args[0] = "boids.py";
for (index = 1; index < argc; index++)
{
args[index - 1] = argv[index];
}
args[argc] = NULL;
return _execvp("python", args);
}
解决方案
在argv
矢量的第一个参数是通常要启动的可执行文件的完全合格的名称:
在_spawnv,_spawnve,_spawnvp,和 当有参数,以可变数量_spawnvpe电话是有用的 新工艺。指针指向 参数被作为数组传递, argv的。的参数的argv [0]通常为 一个指针,指向在实模式或到路径 在保护模式下的程序名, 和argv 1 通过的argv [n]的是 指针指向字符串 形成新的参数列表。该 参数的argv [N 1]必须为NULL 指针标记的结束 参数列表。
(来自 MSDN )
同样地:
在_execv,_execve,_execvp,和 _execvpe通话时很有用的参数到新的数 过程是可变的。指针指向 参数作为数组传递, argv的。该参数的argv [0]通常为 一个指针cmdname。参数 的argv 1 通过的argv [n]的点到 字符串形成新 参数列表。参数 的argv [N + 1]必须为NULL指针 标记参数列表的末尾。
( MSDN )
不隶属于 StackOverflow