歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux中關於fork函數的使用

linux中關於fork函數的使用

日期:2017/3/3 17:00:58   编辑:關於Linux

 在開始學習系統編程的時候,學習了fork的使用,記錄下來以供自己以後的學習

  fork函數用於創建一個新的進程,

  #include #include

  #include

  #include

  int main(void)

  {

  pid_t pid;

  char *message;

  int n;

  pid = fork();

  if (pid < 0) {

  perror("fork failed");

  exit(1);

  }

  if (pid == 0) {

  message = "This is the child\n";

  n = 3;

  } else {

  message = "This is the parent\n";

  n = 6;

  }

  for(; n > 0; n--) {

  printf("%s",message);

  sleep(1);

  }

  return 0;

  }

  程序運行結果:

  返回值: 子進程返回 0,父進程返回子進程的id,若出錯,則返回-1;

  fork函數調用一次但是返回兩次,兩次返回的唯一區別是子進程的返回值是0,而父進程返回值是新進程的進程ID號。將子進程ID返回給父進程的理由是:因為一個進程的子進程可以有多個,並且沒有一個函數使一個進程可以獲得其所有子進程的進程ID號。fork函數使子進程返回0的理由是:一個進程只會有一個父進程,所以子進程總是可以調用getppid以獲取其父進程的進程ID

Copyright © Linux教程網 All Rights Reserved