fork

    0熱度

    1回答

    是否可以使用fork命令更改目錄?沒有去太多了我的代碼,我有以下幾點: childpid = fork(); if (childpid >= 0) { if (childpid == 0) { ret = execvp(argv[0],argv); exit(ret); } else { waitpid(childpid

    0熱度

    1回答

    我試圖從fork()模型移到我的應用程序中的線程。以下是 #include <iostream> #include <stdio.h> #include <unistd.h> void worker() { std::cout<<"\nworker thread\n"; } int start() { pid_t pid; if((pid = for

    3熱度

    5回答

    讓我們假定存在具有PID = 1一個過程,它運行以下代碼: int a = fork(); int b = fork(); printf(「a: %d, b: %d\n」, a, b); 讓我們進一步假設新PID旨意給出一個接一個,從而第二給定PID將2,然後3等 一種可能的輸出: a:2, b:3 a:2, b:0 a:0, b:4 a:0, b:0 我有一些麻煩試圖瞭解上述代

    1熱度

    3回答

    程序在從scanf取4或5個值後終止。 但我希望它接受8個值(總共8個進程),然後終止。 void main() { fork(); fork(); fork(); scanf("%d",&j); printf("The values are %d\n",j); wait(0); }

    -1熱度

    3回答

    我想要實現的是以下內容: 產生一個新的子進程(pchild),它不會使用它自己的,但它的父進程(pparent) 。 爲什麼我要實現這種行爲: 想到多個測試,其中第一個導致segvault。 正常情況下,由於段錯誤,您的過程將停在此處,所有其他測試將不再執行。因此,我想在每個測試過程中包裝它們。 主要問題: 一旦我產生了一個進程,它會得到它自己的內存拷貝(嗯,我知道這個事實並不完全適用於所有操作系

    0熱度

    1回答

    我所做的是我創建了n個孩子,並且父母使用n個管道向他們發送了「開始」消息。每個孩子一個管道。現在我正在努力做的事情是將父母的數量發回給每個孩子。 這是我的代碼至今: int main() { int n=5; int p[n-1][2]; int i; for(i=0;i<n;i++){ if(pipe(p[i])>0){ perror("pipe error"

    -1熱度

    1回答

    我正在構建一個Sinatra API調用,它將觸發子進程中的長時間運行操作。我使用的是exception_handler寶石,但不明白我如何在分叉過程中使用它。 西納特拉應用: require 'sinatra' require 'rubygems' require 'bundler/setup' require 'exception_notification' use Exceptio

    1熱度

    1回答

    即使當我運行的代碼輸出的東西只在子進程中,但輸出多次來的部分。像這裏我給大塊= 8,但輸出是100+倍。 Here is the code: #include<stdio.h> #include<string.h> int main(){ int chunks=8; int proc[25]; for(int proc_iter=0;proc_iter<chunks;proc

    3熱度

    1回答

    我希望我的父進程等待所有子進程和子進程的子進程完成。我已經使用while(waitpid(-1,NULL,0)),但它只是創建了一個無限循環。我也使用了waitpid(pid_child,&status,WNOHANG),但它只是在子進程不結束子進程的子進程時結束。 注意:pid_child是我在父進程中從fork()獲得的PID。

    1熱度

    3回答

    我有下面的代碼: #include<stdio.h> #include<unistd.h> int main() { int a=0; printf("before: %d %p\n",a,&a); int t=fork(); if(t==0) { a=a+5; printf("child: %d %p\n",a,&a