Programme unix

Résolu
ahlem -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,



je veux savoir le resulta qui donne ce programme


#include <stdio.h>
main()
{int pid ,status;
if(fork()==0){printf("processsus fils %d\n",getpid())
exit(1 0);}
pid wait(&status);
printf("processus père %d\n",getbid());
printf("sortie du wait\n");
sleep(15);
printf("pid=%d\n",pid,status);
exit(0)}

2 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Il donne qu'il ne compile pas car il est plein de fautes :-) Je pense que le mieux serait d'installer linux (par exemple dans un logiciel comme virtualbox si tu veux rester sous windows) et que tu corriges ton programme.

Bonne chance
0
ahlem
 
merci bien
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Voici ton programme une fois que j'ai corrigé comme j'ai pu (je ne sais pas si c'était ce que tu voulais faire) :

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

int main() {
    int pid, status;
    if (fork() == 0) {
        printf("processsus fils %d\n", getpid());
        exit(EXIT_SUCCESS);
    }
    pid = wait(&status);
    printf("processus père %d\n", getpid());
    printf("sortie du wait\n"); 
    sleep(15); 
    printf("pid = %d status = %d\n", pid, status);
    exit(EXIT_SUCCESS);
}


... ce qui donne :

(mando@aldur) (~) $ gcc -W -Wall plop.c 
(mando@aldur) (~) $ ./a.out 
processsus fils 4492
processus père 4491
sortie du wait
pid = 4492 status = 0


Je t'invite à regarder les pages de man si tu te demandes à quoi servent les fonctions fork, wait etc... Si tu es sous linux il suffit par exemple de taper dans un terminal "man fork", sinon tu peux directement taper ça dans google...

Bonne chance
0