Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> linux中關於fork函數的使用

linux中關於fork函數的使用

日期:2017/1/20 17:42:33      編輯: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 © Windows教程網 All Rights Reserved