Linux下,1_進程簡單創建fork

       linux使用fork來生成一個子進程,fork() 函數的返回值。如果創建失敗,將得到 -1;如果創建成功,在父進程中將得到子進程的 PID,在子進程中將得到 0

如果在 fork() 函數之後用一個 if 語句對 fork() 函數的返回值進行判斷,子進程和父進程將進入不同的分支。

#include <stdlib.h>
#include <sys/types.h>
#include <sys/time.h>

int main()
{
    int a = 1;
    pid_t pid;

    pid = fork();
    if (pid == 0) {
        /* child task */
        a++;
        printf("Hello, child: a=%d\n", a);

        sleep(5);
        exit(0);
    } else {
        /* parent task */
        sleep(3);
        printf("Hello, parent: a=%d\n", a);
    }

    return 0;
}

注:fork之後,子進程和父進程,一開始得到的資源是一樣的,但是之後相互獨立。子進程修改a後,父進程是得不到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章