cmd_suivi.c 1.36 KB
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>

int main(){
    int fork1, fork2, fork3;
    if((fork1=fork())<0){
        perror("erreur exec du fork");
        exit(1);
    }
    if(fork1 == 0){
        if(execlp("who","who",NULL)==-1){
            perror("echec execlp");
            exit(1);
        }  
    }else{
        int pid, r; 
        if((pid= wait(&r)) <0){
                perror("erreur exec du wait");
                exit(1);
        }
        if((fork2=fork())<0){
            perror("erreur exec du fork");
            exit(1);
        }
        if(fork2 == 0){
            if(execlp("ps","ps","-x",NULL)==-1){
                perror("echec execlp");
                exit(1);
            }  
        }else{
            if((pid= wait(&r)) <0){
                    perror("erreur exec du wait");
                    exit(1);
            }
            if((fork3=fork())<0){
                perror("erreur exec du fork");
                exit(1);
            }
            if(fork3 == 0){
                if(execlp("ls","ls","-la",NULL)==-1){
                    perror("echec execlp");
                    exit(1);
                }  
            }else{
                if((pid= wait(&r)) <0){
                    perror("erreur exec du wait");
                    exit(1);
                }
            }
        }
    }
    return 0;
}