簡體   English   中英

vfork()的多個進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM