誰能幫我看看這個程式碼?

#include<sys/types.h>

#include<stdio.h>

#include<unistd.h>

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);

}

}

請大大幫一下 知道的..

請麻煩告訴我輸出結果是啥? 作業要交的 謝謝!!

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    這個程式碼好像是課本「作業系統原理」的程式碼,因為是教學用的程式碼,所以程式碼不完整。

    (因為我們這學期也有上這堂課……)

    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/...

    2.OPENGROUP

    http://www.opengroup.org/onlinepubs/007908799/xsh/...

    3.MSDN(內有 WINDOWS 的範例程式碼)

    http://msdn2.microsoft.com/en-us/library/ms811896....

    2007-04-12 04:52:55 補充:

    如果子行程建立成功,value 加 15,否則列印 value 的值。PARENT 的意思「可能是」指父行程。

    Source(s): Internet 網際網路
Still have questions? Get your answers by asking now.