Bonjour
Je commence a apprendre les processus et j'essaie de faire fonctionner un petit code que j'ai vu dans un livre mais mon programme ne fonctionne pas.
Quand j'execute le programme apres l'avoir compilé en ligne de commande, il ne se passe rien, le prompt reviens.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <sys/wait.h> int main(void) { pid_t pid_fils; do{ pid_fils=fork(); }while((pid_fils == -1) && (errno == EAGAIN)); if (pid_fils == -1){ fprintf(stderr,"Erreur errno=%d\n",errno); return 1; if (pid_fils == 0){ printf("Dans le fils.\n"); fprintf(stdout,"FILS : PID=%ld. PPID=%ld\n",(long)getpid(),(long)getppid()); return 0; }else{ printf("Dans le père.\n"); fprintf(stdout,"PERE : PID=%d. PPID=%d. PID_fils=%ld\n",(long)getpid(),(long)getppid(),(long)pid_fils); wait(NULL); return 0; } } }
Le processus n'est pas creer et donc les testes ne sont pas fait.
Je pense que ca vient de <unistd.h> pourtant le fichier est bien a l'emplacement /usr/include/unistd.h.
Je suis sur mandriva 2009 et j'utilise gcc pour compiler.
Pourquoi le programme ne cree pas le processus?
Merci d'avance
Partager