问题记录:linux下使用execv启动子进程
场景:
在公司代码,需要启动其他进程,因此使用了fork + execv
遇到的问题:
execv运行成功了,但是通过ps -ef 找不到启动的子进程;通过查找当前进程pid,然后找到子进程的pid,再从/proc找到对应子进程的目录,查看comm中,又是对的,但是子进程运行的状态不符合预期。
代码示例:
char** cmd = calloc(1, sizeof(char*) * N);
.... /* 对cmd进行组装 */
pid = fork();
if (pid == 0) {
execv(exec_path, cmd);
}
修改:
对cmd的声明进行了修改 -> char* cmd[N] = {参数}; 编译后运行正常。

浙公网安备 33010602011771号