/***************************************************************************** * * * ============================================== * * * *****************************************************************************/ #include #include #include #define usage() fprintf(stderr, "usage: %s inputfile outputfile key\n", progammname) /***************************************************************************** * * * --------------------------------- main --------------------------------- * * * *****************************************************************************/ int main(int argc, char *argv[]) { /*Programmname merken*/ char *progammname = argv[0]; FILE *inputfile; FILE *outputfile; int anz_gelesen; unsigned long key; unsigned long gelesen; /*Argumentverarbeitung, */ /*falls filename angegeben wird in diesen geschrieben, sonst auf stdout*/ if (argc == 4) { inputfile = fopen(argv[1],"r"); if(inputfile == NULL) { fprintf(stderr,"Fehler beim Oeffnen der Datei %s zum Lesen.\n", argv[1]); usage(); return -1; } else { outputfile = fopen(argv[2],"w"); if(outputfile == NULL) { fclose(inputfile); fprintf(stderr,"Fehler beim Oeffnen der Datei %s zum Schreiben.\n", argv[2]); usage(); return -1; } } sscanf(argv[3], "%lu", &key); fprintf(stdout, "Key: %ld\n", key); } else { usage(); return -1; } while ((anz_gelesen = fread((void*)&gelesen, 1, 4, inputfile)) > 0) { gelesen = gelesen ^ key; fwrite((void*)&gelesen, 1, anz_gelesen,outputfile); gelesen = 0; anz_gelesen = 0; } fclose(inputfile); fclose(outputfile); return 0; }