#include "main.h" //====================================================================== int main(int argc, char **argv) { int ok; char *sort_args[] = {"sort", NULL}; // open input and output files int fdIn = open("animals", O_RDONLY); if(fdIn < 0) { perror("open"); return 1; } int fdOut = open("results", O_WRONLY | O_TRUNC | O_CREAT, S_IRUSR | S_IRGRP | S_IWGRP | S_IWUSR); if(fdOut < 0) { perror("open"); return 1; } // replace standard input with input file ok = dup2(fdIn,0); // 0 = stdin if(ok == -1) { perror("dup2"); return 1; } // replace standard output with output file ok = dup2(fdOut,1); // 1 =stdout if(ok == -1) { perror("dup2"); return 1; } // close unused file descriptors ok = close(fdIn); if(ok == -1) { perror("close"); return 1; } ok = close(fdOut); if(ok == -1) { perror("close"); return 1; } // execute sort ok = execvp("sort", sort_args); // Default case : execvp read from stdin, write on stdout if(ok == -1) { perror("execvp"); return 1; } return 0; } //^^^^^^^^^^^^^^^^^^^^^^^^^^ EOF ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^