Programme unix

Résolu
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

  1. Modérateur
    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
    1. Modérateur
      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
      1. merci bien
        0