Process 練習

建立進程(Process)

在Linux中,創造新進程的方法只有一個,就是函式fork()。其他一些函式,如system(),看起來似乎也能創建新的進程,如果看一下它們的來源碼(source code)就會明白,它們實際上也在內部呼叫了fork。包括我們在命令行下運行應用程式,新的進程也是由shell呼叫函式fork製造出來的。

fork

fork是UNIX一個系統呼叫(system call),process fork時,會複製一個跟自己完全一模一樣的process (with differentpid),並利用系統呼叫完成之傳回值,來區分parentprocess 與child process,而分別賦予child process不同的功能。

fork (.c)

  • “fork”的意思就是一分為二,把當前進程複製出一個新的進程。當前的進程就是新進程的父進程,新進程稱為子進程。
  • fork把子進程ID傳回給父進程,把0傳回給子進程,通過對傳回值的檢查就可知道當前是父進程還是子進程。

閱讀全文