fork

    1熱度

    1回答

    我正在編寫一個程序,直接從父進程創建兩個進程。我期望的輸出看起來像 Main programs process ID: 2834 Child 2 (ID: 2836) Start Sequence at: 23 Child 1 (ID: 2835) Start Sequence at: 20 我的實際產量 Main programs process ID: 2834 Child 2 (I

    6熱度

    1回答

    我有一個在32GB機器上分配大約20GB RAM的進程。在發生一些事件後,我將來自父進程的數據流式傳輸到子進程的標準輸入。當孩子產卵時,必須將20GB數據保存在父進程中。 該應用程序是在Rust中編寫的,我打電話給Command::new('path/to/command')來創建子進程。 當我產生子進程時,操作系統陷入了內存不足的錯誤。 strace的輸出: [PID 747] 16:04:41

    0熱度

    1回答

    試圖創建一個管道,可以關閉一串隨機數。分裂成父母和小孩,產生隨機數字,如果孩子寫信給管道,如果是父母讀書。我覺得這很接近,但我的輸出是無稽之談。有人可以解釋一下管道的作用,並告訴我如何執行這個動作的方向是正確的。 #include <sys/types.h> #include <stdlib.h> #include <unistd.h> #include <iostream> /* c+

    1熱度

    1回答

    在fork()之後,如果沒有明確的setpgid被任何進程調用,子進程組標識是什麼? 我在網上搜索(自己做一些測試),看起來它是父級的進程組標識。但是我在哪裏可以找到提到這個的標準文件? 謝謝。

    0熱度

    1回答

    #include <stdlib.h> #include <stdio.h> #include <unistd.h> int main() { pid_t pid; pid = fork(); // #1 if (pid == 0) { if(fork() > 0) // #2 fork(); // #3 }

    0熱度

    1回答

    我是新來的docker,並且在涉及docker時設計一個簡單的實時升級解決方案時遇到一些問題。要求時 舊服務器fork()孩子:目前我使用一個fork()/exec()基於模式的應用程序實時升級。 子服務器exec()新的可執行文件,加載新的數據/配置。 舊服務器將必要的信息(套接字,內存數據等)傳遞給子級服務器,以便它可以接管服務。 舊的服務器在孩子準備好後將停止處理新的請求(舊服務器不會exi

    1熱度

    1回答

    所以我在寫一個UNIX shell一類礦,基本上我參加一個參數,如果該參數具有「&」在它的結束,然後我需要的父進程調用等待();。 我在這裏的問題是,該方案應接受輸入,直到我鍵入exit,所以一切都在一個「而」循環。事情辦得完美,直到我在它的結束通話與「&」命令,然後我可以看到,父進程結束,那麼孩子結束,但我不是在我的正常提示接受的輸入是「osh>」。 所以基本上這裏是我的正常輸出,當我運行一個簡

    0熱度

    2回答

    請您檢查一下我的代碼,它是一個C++程序,用於生成一個父代的2個子代。用戶應該輸入num值來創建一個過程鏈。問題是每個家長的孩子pid是一樣的,我怎樣才能讓他們與衆不同? #include<iostream> #include<sys/types.h> #include<unistd.h> #include <sys/wait.h> using namespace std; int

    1熱度

    1回答

    TCL'exec'的高分辨率時間軸行爲是什麼? 我知道一個'fork'命令將被使用,它將首先創建一個進程的內存映像的副本,然後繼續。 這是我的問題的動機: 一位用戶給了我下面的觀察。一臺64 GB的機器具有基於TCL的工具界面,使用60GB內存。 (讓我們假設交換很小)。在TCL提示符下,他給出了'exec ls',並且該進程因內存錯誤而崩潰。 您的洞察力非常感謝。 謝謝, Gert

    3熱度

    1回答

    我用C main(int argc, char **argv) { forkit(4); } void forkit(int n) { if(n > 0) { fork(); printf("%d \n", n); forkit(n-1); } } 它打印 4 4 3 3 3 3 2 2 2 2 2 2 2 2 1