web-dev-qa-db-ja.com

関数「wait」の暗黙的な宣言

警告が表示されます>関数「待機」の暗黙的な宣言<そして、プログラムを正しく実行すると、この警告が表示される理由を理解したいですか?

前もって感謝します

編集:含まれているライブラリを追加するのを忘れていました

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>


void create (char* program, char** arg_list)
{
  /* put your code here */
  pid_t childPid;
  int status;

  if((childPid = fork()) < 0){
    printf("Failed to fork() --- exiting...\n");
    exit(1);
  }
  else if (childPid == 0){ // --- inside the child process
    if(execvp(program, arg_list) < 0){ // Failed to run the command
      printf("*** Failed to exec %s\n", program);
      exit(1);
    }
  }
  else{ // --- parent process
    while(wait(&status) != childPid)
      printf("...\n");
  }
}
9
AyeJay

おそらくwait(2)のヘッダーが欠落しています:

  #include <sys/types.h>
  #include <sys/wait.h>
28
usr

あなたが置く必要があります:

#include <sys/types.h>
#include <sys/wait.h>

プログラムの上部で、関数の宣言を取得します。

これは manページ に示されています

4
Barmar