/* fcrypt program sample solution */ #include //#include //#include #include #define FMSIZE 2048 // make sure at least size elements are read; lseek to start if needed void alignread(int fd,char *buffer,int size) { int result; int boffset; result = 0; boffset = (int) buffer; while (result < size) { size = size - result; // # of bytes left to be read boffset = boffset + result; // set buffer offset result = read(fd,(char *)boffset,size); if (result < size) lseek(fd,0,0); // back to start of file } // while loop } // alignread void bxor(char* b1, char* b2, char* b3, int size) { int i; for(i=0;i 0) { result1 = read(infd,buffer1,FMSIZE); if (result1 > 0) { alignread(keyfd,buffer2,result1); bxor(buffer1,buffer2,buffer3,result1); write(outfd,buffer3,result1); } // if result1>0 } // while close(infd); close(keyfd); close(outfd); exit(0); } //main