fork

    1熱度

    1回答

    我正在學習fork(),exec()等,我遇到了一些我不完全瞭解的教科書。 在該示例中,一個進程調用fork()。 在子進程中,我們調用exec()。我們稱之爲wait()。 這是我的理解,成功exec()調用永不返回。如果我們在孩子中調用exec(),如果孩子不會從exec()返回給孩子,我們如何等待孩子返回父母? 我在這裏唯一的猜測是,發生了什麼事是父母,認爲它正在等待孩子,實際上是等待用ex

    1熱度

    1回答

    。 我知道該怎麼寫,並從命名管道讀,但我不知道該如何寫命名管道作爲底層進程並等待只從頂層進程讀取它。

    0熱度

    3回答

    我試圖執行下列操作... Create a new process obtain the PID of a process put a process to sleep for a defined period of time check process ID on the terminal 我的程序運行,但輸出是不是我希望它是和我不是很確定我要出錯的地方。感謝您的時間,我真的很感激!

    0熱度

    1回答

    我試圖將子進程分叉並跟蹤進程是否仍在運行或已完成,但我不想阻止並等待進程完成,因爲我需要能夠繼續進行監視新的傳入請求並根據需要分離額外的子進程。 這是我正在嘗試做的一些基本示例代碼。 loop do pid = fork do puts 'foo' exit 99 end ret_pid = wait2(pid, Process::WNOHANG

    5熱度

    1回答

    我正在實現一個shell。 嘗試執行除更改目錄之外的命令時,execvp()運行時,子項終止並創建新的子項。當我改變目錄時,孩子不會終止並創建一個新的孩子。這裏是我的代碼示例: for(;;) { printf("bash: "); parse(); ... pid_t pid = fork() if (pid == 0) if (!s

    0熱度

    1回答

    我需要一些幫助來理解如何創建一個父母和三個孩子以及連接孩子之間的管道。 我的任務是讓第一個孩子運行ls -l /bin/??並將其發送給第二個孩子,該孩子將運行grep rwxr-xr-x並將其發送給第三個孩子,該孩子將運行sort。 它西港島線是這樣的,如果鍵入來砸: ls -l /bin/?? | grep rwxr-xr-x | sort 我的代碼現在: #include <sys/wait

    1熱度

    1回答

    在這段代碼中,(除了第二個以外忽略了所有的printf),我預計counter到最後時爲1。 int counter = 1; //GLOBAL! int main() { if (fork() == 0) { printf("child has spoken!\n"); counter--; printf("and counter is now

    0熱度

    1回答

    我正在編寫一個服務(即後臺進程)並希望通過共享庫提供它。也就是說,有人想使用該服務將鏈接到共享庫,稱之爲開始()方法,這將分叉和返回。叉子然後將運行服務。 這種方法的問題是,服務進程現在可能有很多遺留分配的內存,它實際上並不需要。有沒有辦法擺脫這一點,並讓分叉進程分配自己的東西?我知道EXEC()當然,但這個問題是 ,我需要這可能不是我希望它是由於不同的操作系統文件夾的佈局位置的可執行 我必須將所

    0熱度

    1回答

    我已經經歷了某種超時,當我嘗試請求相同的視頻流的兩倍,爲此我想到了一個叉能解決我的問題。 我開始之前,我使用的是third party class for video streams。使用我自己的路由系統可行,但我有上述問題。 public function stream ($req, $res) { $video = c_video_folder . $req->get_param('

    -1熱度

    1回答

    我是新來的編程有效的指針地址,和我做了代碼執行以下操作: 在fork()父進程,點創建一個指針地址到「int 2」。 父進程轉換指針地址到long int,然後一個字符串。 父進程將字符串寫入管道。 wait(NULL);迫使父進程等待子進程退出。 子進程繼續將地址讀入空字符串。 子進程的字符串轉換回long int,然後進入一個指針地址。 子進程嘗試打印地址指向「int 2」的值。 子進程退出。