[英]Multiple Processes with vfork()
我試圖在運行uClinux的SmartFusion2 SOM上運行多個進程,但是我只能在上面使用vfork()而不是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;
}
它可以很好地編譯,但是我的輸出看起來像這樣:
I am the baby
I am the parent of pid = 140
SEGV
有人可以幫我看看我在做什么錯嗎?
原來我的代碼是正確的,但是我使用的文件路徑是我計算機上根目錄,而不是運行SmartFusion2時的目錄。 但是由於我沒有在上面的代碼中發布文件路徑,所以它對於任何人都應該可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.