Réponse acceptée !
J'ai été sauvé par mon binôme (Qui est moche soi dit en passant).
Extrait du man de fork :
On success, the PID of the child process is returned in the parent's
thread of execution, and a 0 is returned in the child's thread of exe-
cution. On failure, a -1 will be returned in the parent's context, no
child process will be created, and errno will be set appropriately.
C'est marrant comme tout le monde est tenté de penser que le pid de zéro est pour le père.

Ca m'apprendra à lire les pages de man

.
Donc le bon code était :
int main(argc,argv)
{
int status;
pid_t pid;
printf("Creation du fils\n");
pid = fork();
if (pid < 0)
{
perror("Fork failed\n");
exit(errno);
}
else if (pid == 0)
{
sleep(2); /* On fait durer un peu le fils */
printf("Fin du fils\n");
exit(0);
}
printf("debut attente du fils\n");
wait(&status);
printf("fin de l'attente du fils\n");
exit(0);
}