#include #include #include #include #include #include int main(int argc, char *argv[]) { int rdHdl, wr1Hdl, wr2Hdl, i, c; char buffer[1024]; if(argc < 2) { printf("Usage: %s \n", argv[0]); return -1; } if((rdHdl = fopen(argv[1], "r")) == -1 ) { printf("Error opening file %s. Error %d:%s\n", argv[1], errno, strerror(errno)); return -1; } memset(buffer, 0, sizeof(buffer)); strncpy(buffer, argv[1], sizeof(buffer)); strcat(buffer, ".1"); if((wr1Hdl = fopen(buffer, "w")) == -1 ) { // print error printf("Error opening file %s for write\n", buffer); return -1; } memset(buffer, 0, sizeof(buffer)); strncpy(buffer, argv[1], sizeof(buffer)); strcat(buffer, ".2"); if((wr2Hdl = fopen(buffer, "w")) == -1 ) { // print error printf("Error opening file %s for write\n", buffer); return -1; } /* Input file and two output files are now open */ /* Read input and put into output */ i=0; while(1) { c = fgetc(rdHdl); if( feof(rdHdl) ) break ; if(i%2 == 0) { fputc(c,wr2Hdl); } else { fputc(c,wr1Hdl); } i++; } close(rdHdl); close(wr1Hdl); close(wr2Hdl); // print success printf("Completed.\n"); return 0; }