2017-01-26 1 views
4

Je reçois un avertissement> Déclaration implicite de la fonction 'wait' < et quand je cours le programme il fonctionne correctement, je voudrais comprendre pourquoi je reçois cet avertissement?Déclaration implicite de la fonction 'wait'

Merci à l'avance

Edit: J'ai oublié d'ajouter la bibliothèque inclus

#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"); 
    } 
} 
+0

vous manque la ligne 'n de include' pour la fonction. – Barmar

Répondre

14

Vous manque probablement les en-têtes pour wait(2):

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

Merci, j'ai oublié la bibliothèque d'attente – AyeJay

2

Vous devez mettre:

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

en haut du programme pour obtenir la déclaration de la fonction.

Ceci est illustré dans la man page