Process 使用vWork()的多个进程

Process 使用vWork()的多个进程,process,exec,vfork,Process,Exec,Vfork,我试图在运行uClinux的SmartFusion2 SOM上运行多个进程,但我只能在上面使用vWork()而不能使用fork()。我一直在尝试运行下面的代码来测试运行多个进程,但是没有得到我想要的结果。该代码应该同时运行两个不同的程序,但我遇到了SEGV故障 代码如下: #include <unistd.h> #include <sys/types.h> #include <errno.h> #include <stdio.h> #include

我试图在运行uClinux的SmartFusion2 SOM上运行多个进程,但我只能在上面使用vWork()而不能使用fork()。我一直在尝试运行下面的代码来测试运行多个进程,但是没有得到我想要的结果。该代码应该同时运行两个不同的程序,但我遇到了SEGV故障

代码如下:

#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <sys/wait.h>
#include <stdlib.h>

int main(){
  pid_t pid;

  pid = vfork();
  if(pid > 0){
    printf("I am the parent of pid = %d\n", pid);
    execve("/home/path/to/executable2", NULL, NULL);
  }
  else if (!pid){
    printf("I am the baby\n");
    execve("/home/path/to/executable1", NULL, NULL);
  }
  else if (pid == -1){
    perror("fork");
  }
  return 0;
}

有人能帮我看看我做错了什么吗?

原来我的代码是对的,但我使用的文件路径是我计算机上根目录下的目录,而不是运行SmartFusion2时的同一目录。但是,由于我没有在上面的代码中发布文件路径,所以无论对谁,它都应该可以正常工作

I am the baby
I am the parent of pid = 140
SEGV