问题记录: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] = {参数};  编译后运行正常。
posted @ 2025-01-23 17:17  太极者  阅读(15)  评论(0)    收藏  举报