//使用fread()/fwrite()实现对文件的加密与解密 /* 程序使用方法: 加密用法-> 程序名 -c src dest 解密用法-> 程序名 -d src dest argv[0] argv[1] argv[2] argv[3] */ #define F_PRINT_ERR(e) do { if(e == NULL) { printf("open error"); exit(-1); } } while(0) #include <stdio.h> void encode(char* buf,int n) { int i; for(i = 0;i<n;i++) buf[i]++; } void decode(char *buf,int n) { int i; for(i = 0;i<n;i++) buf[i]--; } int main(int argc,char* argv[]) { if(argc != 4) { printf("use xx.exe -d[-c] src dest "); exit(-1); } FILE* pfr = fopen(argv[2],"rb+"); F_PRINT_ERR(pfr); FILE* pfw = fopen(argv[3],"wb+"); fclose(pfr); F_PRINT_ERR(pfw); int buf[1024]; int n; if(strcmp(argv[1],"-c") == 0) { while((n = fread((void*)buf,1,1024,pfr))> 0 ) { encode(buf,n); fwrite((void*)buf,1,n,pfw); } } else if(strcmp(argv[1],"-d") == 0) { while((n = fread((void*)buf,1,1024,pfr))> 0 ) { decode(buf,n); fwrite((void*)buf,1,n,pfw); } } else printf("arg error "); fclose(pfr); fclose(pfw); return 0; }