redirect.c 886 Bytes
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#include <sys/types.h>

int main(){
   
    int desc;
    if((desc=open("dir2.txt",0666))<0){
        if((desc=creat("dir2.txt",0666))==-1){
            perror("creation fichier impossible");
            exit(1);
        }
    }else {   
        if(lseek(desc,0,SEEK_END)==-1){
            perror("creation fichier impossible");
            exit(1);
        }
    }
    close(1);
    dup(desc);
    int fork1;
    if((fork1=fork())<0){
        perror("erreur exec du fork");
        exit(1);
    }
    if(fork1 == 0){
        if(execlp("echo","echo","-la",NULL)==-1){
            perror("echec execlp");
            exit(1);
        }  
    }else{
        int pid, r; 
        if((pid= wait(&r)) <0){
                perror("erreur exec du wait");
                exit(1);
        }
    }
    return 0;
}