📄 lock.c
字号:
fp=fopen(tmp,"wb+"); //465.
for(i=0;i<=511;i++) //466.
{ //467.
c=fgetc(hdfp); //468.
fputc(c,fp); //469.
} //470.
fseek(fp,470,0); //471.
fread(&data1,4,1,fp); //472.
fseek(fp,450,0); //473.
fat=fgetc(fp); //474.
fclose(fp); //475.
remove(tmp); //476.
sec[number]=k; //477.
number++; //478.
m=k=k+63; //479.
for(i=1;i<=5;i++) //480.
{ //481.
sec[number]=k; //482.
number++; //483.
k++; //484.
} //485.
if(fat==0x0b) //486.
{ //487.
k=m+32; //488.
for(i=1;i<=6;i++) //489.
{ //490.
sec[number]=k; //491.
number++; //492.
k++; //493.
} //494.
} //495.
if(data1==0) //496.
; //497.
else //498.
{ //499.
k=data1; //500.
while(1) //501.
{ //502.
fseek(hdfp,512*(number),0); //503.
tmpnam(tmp); //504.
fp=fopen(tmp,"wb+"); //505.
for(i=0;i<=511;i++) //506.
{ //507.
c=fgetc(hdfp); //508.
fputc(c,fp); //509.
} //510.
fseek(fp,470,0); //511.
fread(&data2,4,1,fp); //512.
fseek(fp,450,0); //513.
fat=fgetc(fp); //514.
fclose(fp); //515.
remove(tmp); //516.
sec[number]=k; //517.
number++; //518.
m=k=k+63; //519.
for(i=1;i<=5;i++) //520.
{ //521.
sec[number]=k; //522.
number++; //523.
k++; //524.
} //525.
if(fat==0x0b) //526.
{ //527.
k=m+32; //528.
for(i=1;i<=6;i++) //529.
{ //530.
sec[number]=k; //531.
number++; //532.
k++; //533.
} //534.
} //535.
if(data2==0) //536.
break; //537.
k=data1+data2; //538.
} //539.
} //540.
fclose(hdfp); //541.
//542.
i=open("data.hd",O_CREAT); //543.打开备份的数据文件
byte=filelength(i); //544.测试文件长
close(i); //545.
remove("data.hd"); //546.删除数据文件
byte=byte/512; //547.计算扇区数
for(i=0;i<=511;i++) //548.
{ h[i]=0; } //549.将数组元素全部赋0值
for(number=0;number<byte;number++) //550.
{ //551.
tmfp=tmpfile(); //552.
fwrite(&sec[number],4,1,tmfp); //553.
rewind(tmfp); //554.
fread(&s4,1,1,tmfp); //555.
fread(&s3,1,1,tmfp); //556.
fread(&s2,1,1,tmfp); //557.
fread(&s1,1,1,tmfp); //558.
fclose(tmfp); //559.
tmpnam(tmp); //560.
fp=fopen(tmp,"wb"); //561.
for(i=0;i<=511;i++) //562.
{ fputc(h[i],fp); } //563.
fclose(fp); //564.
WHD(s1,s2,s3,s4,tmp); //565.调用写扇区汇编子程序
remove(tmp); //566.
} //567.
textcolor(143); //568.
cprintf("Ok!"); //569.
textcolor(7); //570.
cprintf("\n"); //571.
} //572.
//573.
void jie() //574.解锁函数
{ //575.
FILE *tmfp,*hdfp,*fp; //576.
char ch; //577.
char tmp[13]; //578.
int i,c; //579.
int fat; //580.
unsigned byte,number=0; //581.
unsigned long sec[120]; //582.
unsigned long k=0,m; //583.
unsigned long data1,data2; //584.
unsigned char s1,s2,s3,s4; //585.
//586.
hdfp=fopen("data.hd","rb"); //587.
tmpnam(tmp); //588.
fp=fopen(tmp,"wb+"); //589.
for(i=0;i<=511;i++) //590.
{ //591.
c=fgetc(hdfp); //592.
fputc(c,fp); //593.
} //594.
fseek(fp,470,0); //595.
fread(&data1,4,1,fp); //596.
fseek(fp,450,0); //597.
fat=fgetc(fp); //598.
fclose(fp); //599.
remove(tmp); //600.
sec[number]=k; //601.
number++; //602.
m=k=k+63; //603.
for(i=1;i<=5;i++) //604.
{ //605.
sec[number]=k; //606.
number++; //607.
k++; //608.
} //609.
if(fat==0x0b) //610.
{ //611.
k=m+32; //612.
for(i=1;i<=6;i++) //613.
{ //614.
sec[number]=k; //615.
number++; //616.
k++; //617.
} //618.
} //619.
if(data1==0) //620.
; //621.
else //622.
{ //623.
k=data1; //624.
while(1) //625.
{ //626.
fseek(hdfp,512*(number),0); //627.
tmpnam(tmp); //628.
fp=fopen(tmp,"wb+"); //629.
for(i=0;i<=511;i++) //630.
{ //631.
c=fgetc(hdfp); //632.
fputc(c,fp); //633.
} //634.
fseek(fp,470,0); //635.
fread(&data2,4,1,fp); //636.
fseek(fp,450,0); //637.
fat=fgetc(fp); //638.
fclose(fp); //639.
remove(tmp); //640.
sec[number]=k; //641.
number++; //642.
m=k=k+63; //643.
for(i=1;i<=5;i++) //644.
{ //645.
sec[number]=k; //646.
number++; //647.
k++; //648.
} //649.
if(fat==0x0b) //650.
{ //651.
k=m+32; //652.
for(i=1;i<=6;i++) //653.
{ //654.
sec[number]=k; //655.
number++; //656.
k++; //657.
} //658.
} //659.
if(data2==0) //660.
break; //661.
k=data1+data2; //662.
} //663.
} //664.
fclose(hdfp); //665.
//666.
i=open("data.hd",O_CREAT); //667.
byte=filelength(i); //668.测试文件长
close(i); //669.
byte=byte/512; //670.计算扇区数
hdfp=fopen("data.hd","rb"); //671.打开备份文件
for(number=0;number<byte;number++) //672.
{ //673.
tmfp=tmpfile(); //674.
fwrite(&sec[number],4,1,tmfp); //675.
rewind(tmfp); //676.
fread(&s4,1,1,tmfp); //677.
fread(&s3,1,1,tmfp); //678.
fread(&s2,1,1,tmfp); //679.
fread(&s1,1,1,tmfp); //680.
fclose(tmfp); //681.
tmpnam(tmp); //682.
fp=fopen(tmp,"wb"); //683.
for(i=0;i<=511;i++) //684.读一个扇区数据
{ //685.
ch=fgetc(hdfp); //686.
fputc(ch,fp); //687.
} //688.
fclose(fp); //689.
WHD(s1,s2,s3,s4,tmp); //690.将数据写入扇区
remove(tmp); //691.
} //692.
fclose(hdfp); //693.
remove("data.hd"); //694.删除备份文件
textcolor(143); //695.
cprintf("Ok!"); //696.
textcolor(7); //697.
cprintf("\n"); //698.
} //699.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -