我正在尝试在运行uClinux的SmartFusion2 SOM上运行多个进程,但我只能使用vfork()而不能使用fork()。我一直在尝试运行以下代码来测试运行多个进程,但我没有得到我想要的结果。该代码应该同时运行两个不同的程序,但我得到一个SEGV故障。
以下是代码:
new FormControl('your value',
它编译得很好,但我的输出看起来像这样:
#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;
}
有人能帮我看看我做错了什么吗?
答案 0 :(得分:0)
原来我的代码是正确的,但我使用的文件路径是我的计算机上的root目录,而不是运行SmartFusion2时的同一目录。但是因为我没有在上面的代码中发布文件路径,所以它对任何人都应该可以正常工作。