關於Linux的fork,關於linux下fork 函式的問題

2022-11-11 09:35:08 字數 1706 閱讀 3245

1樓:匿名使用者

= or ==

你初學者吧,請把賦值 =

和 == 值比較 搞清楚啊

= value assignment

== value compare

關於linux下fork()函式的問題

2樓:風若遠去何人留

這個和printf 的列印規則有關。

當呼叫printf時, 列印內容並不一定會實時輸出到終端,而是先存到緩衝中,在如下情況之一輸出到終端:

1 遇到換行。

2 緩衝區滿。

3 遇到flush一類的緩衝重新整理函式。

4 退出程式。

這裡是第一種和第四種。

對於第一個程式,沒換行,所以還在緩衝中, fork的時候 把緩衝中的a也複製了, 這樣等程式退出時, 顯示了兩個。

第二個程式,是遇到\n, 直接輸出,緩衝為空。fork的時候, 不會複製這部分。於是只有一個a。

linux下的fork()運用

3樓:匿名使用者

fork()建立一個子程序,fork()進入核心,呼叫一次返回兩次,如果返回的pid == 0子程序先返回,如果pid > 0(此時返回的是子程序的pid),父程序先返回。至於子程序和父程序哪個先返回,要看核心的排程演算法。輸出次序亂序,都有可能。

父程序和子程序是併發執行的。

4樓:

我不知道你的編譯器是什麼 但是你的**有些問題 while(p1=fork())這個條件在gcc下會進入死迴圈

而且 while((p2=fork())<0);這個只是對p2=fork()賦值正確與否進行判斷

關於linux c 下fork的用法

5樓:匿名使用者

簡單的說,自 fork 呼叫之後的**,父子程序均是可見的你的程式裡面,子程序在執行了 "i am in child" 之後,也做了一次

if < 0 ... else "in parent"

所以打了兩遍

正確的寫法應該是

pid = fork();

if (pid < 0)

if (0 == pid) else

對比一下就明白了

6樓:匿名使用者

你少寫了一個else

應該是:

if ( pid<0 )else if( pid==0 )else

關於linux的fork呼叫的小例子。 10

7樓:匿名使用者

實際上fork跟普通函式沒兩樣,也是返回一次。只不過是處於主程序中就返回0,處於子程序中就返回大於0的值。

就是說同樣的**執行後可能是主程序,也可能是子程序,在主程序中就執行fork()==0的**,在子程序中就執行fork()>0的**,並不是在一個程式中返回兩次。

8樓:匿名使用者

fork函式比較特殊,呼叫後會返回兩次,一次返回0表示父程序返回,另一次返回非零整數(即fork產生的子程序的id)表示子程序返回。

linux中的fork函式到底做了什麼事

在什麼情況下會用到linux系統中fork()函式,請舉例說明。

關於裝Linux系統,已經安裝linux系統了,想實現雙系統,怎麼安裝win7啊?

第一次回答問題,不對的請大家指教。1 裝linux之前需要在硬碟上有空餘的可分割槽空間 安裝時再分割槽 容量大小看你的應用吧,如果是看一看 學一學,先弄個6 7g左右吧,用的有一點兒感覺了可以再重新弄 初學linux,怎麼也得裝上幾次 2 linux對主流硬體支援的很好,一般可能只需要安裝顯示卡驅動...

關於裝linux系統的問題

還是建議你雙系統。不然windows下檔案是分盤儲存的,你就算把c盤系統清空,那d盤e盤的檔案怎麼辦?linux可不是分盤的,只是分資料夾而已。除非你所有資料都不要了。雙系統也沒什麼嘛,隨便找個工具把哪個盤分離出來三四gb的空間就可以了,還可以讀取windows下的檔案。依你的想法嘛,也行,把lin...

關於linux安裝問題請教大家

應該說,你是第一次接觸linux安裝才對,是吧?虛擬機器有虛擬機器的缺陷,比如說虛擬機器裡你能新增一個虛擬的1394匯流排控制器或者pcmcia介面卡麼 你先去windows,用powerquest partition magic重新分割槽,一定要空一段連續的 未使用硬碟空間,或者叫未劃分磁碟空間 ...