fork

    0熱度

    1回答

    我正在研究一個程序,該程序將接收一個整數並創建兩個進程,一個父進程和一個子進程。父母會從整數中減去5,將其傳遞給將要除以5的孩子,然後他們將重複該過程5次,每次打印整數的當前值。 該整數可以通過文本文件傳遞並且可以被寫入和讀取,或者可以使用管道更簡單。 我一直在查找所需的系統調用,並有一個半工作程序。然而,我一直堅持了幾個小時,我認爲我的問題是我無法讓他們等待對方完成,因爲我的輸出不正確。 這是我

    0熱度

    1回答

    我有一個巨大的應用程序,需要在某個時刻自行分叉。該應用程序是多線程的,有大約200MB的分配內存。我現在要做的事情是確保進程分配的數據不會被重複,以便在此線程內啓動一個新的線程和分支。從我讀過的內容來看,只有調用fork的線程纔會被複制,但分配的內存會發生什麼情況?那還會在那裏嗎?這樣做的目的是用其他啓動參數重新啓動應用程序,當它分叉時,它將用我的新參數調用main,從而有希望獲得同一程序的新進程

    0熱度

    2回答

    我見過很多類似的問題,但都是針對特定案例,並沒有幫助我找到解決方案。我將不勝感激對我的情況的任何反饋,如下所示: 我想寫一個程序從文本文件中獲取字符數。該程序通過分派四個映射器和26個reducer,併爲每個映射器創建管道。父進程將輸入分爲四行,並將一行傳遞給每個映射器,該映射器計算其行中每個字符的數量。然後,每個映射器將計數傳遞給合適的縮減器,將所有四個計數相加並打印結果。 下面是我的代碼至今:

    1熱度

    1回答

    main() { int fd1[2],fd2[2]; pipe(fd1); pipe(fd2); fork(); fork(); } 上面代碼中共有多少個讀或寫文件描述符?總共將創建多少個管道?所有數據將從其各自的父進程複製到子進程?請解釋程序的工作。

    1熱度

    1回答

    鑑於接收信號是下面的代碼: package main import ( "os" "fmt" "os/exec" "os/signal" "syscall" ) const NUMBER_OF_PEASANTS = 3 func createPeasants() map[string]*exec.Cmd { peasants :

    4熱度

    2回答

    據我瞭解,Fds是用來查找內核文件描述表中打開的文件的整數。因此,如果您有這樣的代碼段: int fd[2], temp1, temp2; pipe(fd); temp1 = fd[0]; temp2 = fd[1]; close(temp1); close(temp2); 所有到管道的文件描述符都關閉,因此管道將不再存在。由於FD只是整數,所以close(temp1)與close(

    0熱度

    1回答

    我有一個程序,可以自行分叉多次,並根據用戶的判斷。 我想知道孩子什麼時候退出(而且它是返回狀態),同時還在嘗試做其他事情。 我知道我可以用線程解決這個問題;但是,我不知道是否有類似功能的poll(2)檢查變量更改(如觀察點)。 作爲psudocode例如: int counter = 0; child() { cout << "Hello World\n"; return

    -1熱度

    1回答

    我想在每個過程中生成子進程並同時下載(我不知道實際上是simultaneous,但看起來像是發生了simultaneous),並且下載了wget。 for download_cmd in cmd_list: pid = os.fork() if pid == 0: fd = subprocess.Popen(download_cmd) else:

    0熱度

    1回答

    我想打電話ev_loop_fork,如果我不叫ev_loop_fork的孩子,那麼兒童觀察者就不會被觸發。 這是我的代碼,我建立與EVBACKEND_EPOLL和EVFLAG_NOENV標誌的ev_loop。 因此沒有EVFLAG_FORKCHECK標誌。 然後我發表評論ev_loop_fork打電話給孩子。 如果一切順利,我認爲孩子不會觸發超時回調函數。 但實際上,輸出是這樣的: $ 4980叉

    0熱度

    1回答

    我試圖理解pipe()功能是如何工作的,我有以下程序示例 int main(void) { int fd[2], nbytes; pid_t childpid; char string[] = "Hello, world!\n"; char readbuffer[80]; pipe(fd); if((childpid