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重新分割槽,一定要空一段連續的 未使用硬碟空間,或者叫未劃分磁碟空間 ...