2012-12-05 223 views
1

這是我第一次使用fork,我希望父進程計算總和,並且孩子在父進程中爲總和提供輸入,反之亦然,但我無法做到它,他們作爲兩個獨立的過程工作!我怎麼能做到這一點, 當我給輸入爲1和2,父母必須返回總和爲3使用fork系統調用

int main() { 

    int num1 = 0, num2 = 0, sum = 0; 
    pid_t pid; 
    pid = fork(); 
    if(pid == -1) 
     perror("fork"); 
    if(pid > 1) 
    { 
     wait(NULL); 
     printf("sum:%d\n",sum = num1 + num2); 
    } 
    if(!pid) 
    { 
     printf("Enter two number\n"); 
     scanf("%d %d", &num1, &num2); 
    } 

} 
+2

*「它們作爲兩個獨立的進程工作」* ** [按狀態設計] **您想查看「popen」和/或更完整版本的進程間通信(IPC)。或者使用*線程*而不是進程。 – dmckee

回答

0

如果一次你在你的程序中使用fork系統調用它創建另一個進程,你不能從一個進程返回到另一個進程(子進程到父進程),所以如果你想在兩個進程之間進行通信使用k系統調用意味着使用未命名的管道(一種進程間通信方法)