Exercice 1: read_file.c fait la même chose que cat. #define BUTS7 256 #define LEN 128 int main(int argc,char*argv[] { int n if(argc<2) { n=snprintf(str,LEN,"Usage: %s \n",argv[0]); write(2,str,n); exit(1); } } //alternative if(argc<2) { write(2,"Usages: ",7); write(2,argv[0],strlen(argv[0])); write(2," \n",13); exit(1); } fd=open(argv[1],O_RDONLY); if(fd ==-1) { perror("Openning file fails"); //perror affiche mon message puis le message standard associé a l'erreur qui vient de se produire exit(2); } while(n=read(fd,buf,BUFS7)) { if(n==1) { perror("Read in file fails"); exit(3); } while(m==write(1,buf,n)); if(m==-1) { perror("write to stdait fails"); exit(4); } close(fd); exit(0); } Exercice 2: Copy.c fait la même chose que cp #define BUFS7 256 #define LEN 128 int main(int argc,char*argv[]) { int fdr,fdw,m,n;char buf[BUFS7];char str[LEN]; if(argc<3) { n =snprintf(str,LEN,"Usage %s \n",argv[0]); write(2,str,n); exit(1); } fdr=open (argv[1],O_RDONLY]; if(fdr==-1) { perror("Openning SRC_FILES fails"); exit(2); } fdw=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0600); if(fdw==-1) { perror("Openning DEST_FILE fails"); exit(3); }