English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#include
#include
#include
int value = 5;
int main()
{
pid.t pid;
pid = fork();
if(pid == 0)
{
value+=15;
}

else if(pid >0 )
{
wait(NULL);
printf("PARENT: value = %d",value);
exit(0);
}
}
請大大幫一下 知道的..
請麻煩告訴我輸出結果是啥? 作業要交的 謝謝!!

2007-04-11 22:30:11 · 1 個解答 · 發問者 小兔牙 3 in 電腦與網際網路 程式設計

1 個解答

這個程式碼好像是課本「作業系統原理」的程式碼,因為是教學用的程式碼,所以程式碼不完整。
(因為我們這學期也有上這堂課……)
unistd.h 這個標頭檔案只會出現在 UNIX 系統,也就是說,這種的程式碼通常只能在 UNIX
系統上運作,除非你可以找到相關的函式和標頭檔,不然就無法在 WINDOWS 系統上編譯。
pid_t fork(void);
fork 函式,建立一個新的行程。無任何參數,傳回值是 pid_t 型態的值。建立成功傳回 0 值給子行程並且把子行程的行程 ID
傳給父行程。建立失敗或有發生其他情形,不建立子行程,傳回 -1 值給父行程,並把 errno 設定為錯誤。
pid_t wait(int *stat_loc);
pid_t waitpid(pid_t pid, int *stat_loc, int options);
wait 函式,等待終止一個子行程。
參考資料:
1.OPENGROUP
http://www.opengroup.org/onlinepubs/007908799/xsh/wait.html
2.OPENGROUP
http://www.opengroup.org/onlinepubs/007908799/xsh/fork.html
3.MSDN(內有 WINDOWS 的範例程式碼)
http://msdn2.microsoft.com/en-us/library/ms811896.aspx

2007-04-12 04:52:55 補充:
如果子行程建立成功,value 加 15,否則列印 value 的值。PARENT 的意思「可能是」指父行程。

2007-04-12 00:49:27 · answer #1 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers