📄 lockmain.c
字号:
getch(); //245.
closegraph(); //246.
exit(0); //247.
} //248.
setviewport(0,40,200,60,0); //249.
outhz(0,0,"正在加锁,请稍等",13); //250.
jia(); //251.
copyf(); //252.
cle(); //253.
setviewport(0,80,200,120,0); //254.
outhz(0,20,"加锁成功",15); //255.
outhz(0,40,"按任一键退出",7); //256.
getch(); //257.
closegraph(); //258.
} //259.
} //260.
char gsh[16]; //261.
//262.
void jia() //263.
{ //264.
FILE *tmfp,*hdfp,*fp; //265.
char h[512]; //266.
char tmp[13]; //267.
int i,j; //268.
int fat; //269.
unsigned long sec[120]; //270.
unsigned number=0; //271.
unsigned long k=0,m; //272.
unsigned long data1,data2; //273.
unsigned char s1,s2,s3,s4; //274.
char ch; //275.
//276.
hdfp=fopen("data.hd","ab+"); //277.以添加方式打开文件
tmfp=tmpfile(); //278.
fwrite(&k,4,1,tmfp); //279.
rewind(tmfp); //280.
fread(&s4,1,1,tmfp); //281.
fread(&s3,1,1,tmfp); //282.
fread(&s2,1,1,tmfp); //283.
fread(&s1,1,1,tmfp); //284.
fclose(tmfp); //285.
tmpnam(tmp); //286.
RHD(s1,s2,s3,s4,tmp); //287.
sec[number]=k; //288.
number++; //289.
fp=fopen(tmp,"rb"); //290.
for(i=0;i<=511;i++) //291.
{ //292.
ch=fgetc(fp); //293.
fputc(ch,hdfp); //294.
} //295.
fseek(fp,470,0); //296.
fread(&data1,4,1,fp); //297.读扇区数字段值
fseek(fp,450,0); //298.
fat=fgetc(fp); //299.读分区格式字段值
fclose(fp); //300.
remove(tmp); //301.
//302.
m=k=k+63; //303.
for(j=1;j<=5;j++) //304.
{ //305.
tmfp=tmpfile(); //306.
fwrite(&k,4,1,tmfp); //307.
rewind(tmfp); //308.
fread(&s4,1,1,tmfp); //309.
fread(&s3,1,1,tmfp); //310.
fread(&s2,1,1,tmfp); //311.
fread(&s1,1,1,tmfp); //312.
fclose(tmfp); //313.
tmpnam(tmp); //314.
RHD(s1,s2,s3,s4,tmp); //315.
sec[number]=k; //316.
number++; //317.
fp=fopen(tmp,"rb"); //318.
for(i=0;i<=511;i++) //319.
{ //320.
ch=fgetc(fp); //321.
fputc(ch,hdfp); //322.
} //323.
fclose(fp); //324.
remove(tmp); //325.
k++; //326.
} //327.
if(fat==0x0b) //328.若是FAT32分区
{ //329.
k=m+32; //330.
for(j=1;j<=6;j++) //331.
{ //332.
tmfp=tmpfile(); //333.
fwrite(&k,4,1,tmfp); //334.
rewind(tmfp); //335.
fread(&s4,1,1,tmfp); //336.
fread(&s3,1,1,tmfp); //337.
fread(&s2,1,1,tmfp); //338.
fread(&s1,1,1,tmfp); //339.
fclose(tmfp); //340.
tmpnam(tmp); //341.
RHD(s1,s2,s3,s4,tmp); //342.
sec[number]=k; //343.
number++; //344.
fp=fopen(tmp,"rb"); //345.
for(i=0;i<=511;i++) //346.
{ //347.
ch=fgetc(fp); //348.
fputc(ch,hdfp); //349.
} //350.
fclose(fp); //351.
remove(tmp); //352.
k++; //353.
} //354.
} //355.
if(data1==0) //356.
; //357.
else //358.
{ //359.
k=data1; //360.
while(1) //361.
{ //362.
tmfp=tmpfile(); //363.
fwrite(&k,4,1,tmfp); //364.
rewind(tmfp); //365.
fread(&s4,1,1,tmfp); //366.
fread(&s3,1,1,tmfp); //367.
fread(&s2,1,1,tmfp); //368.
fread(&s1,1,1,tmfp); //369.
fclose(tmfp); //370.
tmpnam(tmp); //371.
RHD(s1,s2,s3,s4,tmp); //372.
sec[number]=k; //373.
number++; //374.
fp=fopen(tmp,"rb"); //375.
for(i=0;i<=511;i++) //376.
{ //377.
ch=fgetc(fp); //378.
fputc(ch,hdfp); //379.
} //380.
fseek(fp,470,0); //381.
fread(&data2,4,1,fp); //382.
fseek(fp,450,0); //383.
fat=fgetc(fp); //384.
fclose(fp); //385.
remove(tmp); //386.
//387.
m=k=k+63; //388.
for(j=1;j<=5;j++) //389.
{ //390.
tmfp=tmpfile(); //391.
fwrite(&k,4,1,tmfp); //392.
rewind(tmfp); //393.
fread(&s4,1,1,tmfp); //394.
fread(&s3,1,1,tmfp); //395.
fread(&s2,1,1,tmfp); //396.
fread(&s1,1,1,tmfp); //397.
fclose(tmfp); //398.
tmpnam(tmp); //399.
RHD(s1,s2,s3,s4,tmp); //400.
sec[number]=k; //401.
number++; //402.
fp=fopen(tmp,"rb"); //403.
for(i=0;i<=511;i++) //404.
{ //405.
ch=fgetc(fp); //406.
fputc(ch,hdfp); //407.
} //408.
fclose(fp); //409.
remove(tmp); //410.
k++; //411.
} //412.
if(fat==0x0b) //413.
{ //414.
k=m+32; //415.
for(j=1;j<=6;j++) //416.
{ //417.
tmfp=tmpfile(); //418.
fwrite(&k,4,1,tmfp); //419.
rewind(tmfp); //420.
fread(&s4,1,1,tmfp); //421.
fread(&s3,1,1,tmfp); //422.
fread(&s2,1,1,tmfp); //423.
fread(&s1,1,1,tmfp); //424.
fclose(tmfp); //425.
tmpnam(tmp); //426.
RHD(s1,s2,s3,s4,tmp); //427.
sec[number]=k; //428.
number++; //429.
fp=fopen(tmp,"rb"); //430.
for(i=0;i<=511;i++) //431.
{ //432.
ch=fgetc(fp); //433.
fputc(ch,hdfp); //434.
} //435.
fclose(fp); //436.
remove(tmp); //437.
k++; //438.
} //439.
} //440.
if(data2==0) //441.
break; //442.
k=data1+data2; //443.
} //444.
} //445.
fclose(hdfp); //446.
} //447.
//448.
void copyf() //449.拷贝文件函数
{ //450.
FILE *fp; //451.
int i; //452.
char ch; //453.
unsigned l,u; //454.
char datahd[30720]; //455.
//456.
i=open("data.hd",O_CREAT); //457.
l=filelength(i); //458.
close(i); //459.
fp=fopen("data.hd","rb"); //460.
for(u=0;u<l;u++) //461.
datahd[u]=fgetc(fp); //462.
fclose(fp); //463.
while(1) //464.
{ //465.
setviewport(0,60,600,80,0); //466.
clearviewport(); //467.
setviewport(0,60,600,80,0); //468.
outhz(0,0,"是否将扇区数据文件拷贝" //469.
"到A盘(Y/N)?",7); //470.
ch=toupper(getch()); //471.
printf("\n"); //472.
if(ch==89) //473.
{ //474.
setviewport(0,60,600,80,0); //475.
clearviewport(); //476.
setviewport(0,60,600,80,0); //477.
outhz(0,0,"将软盘放入驱动器," //478.
"按任一键拷贝文件",7); //479.
getch(); //480.
fp=fopen("a:\\data.hd","wb"); //481.
for(u=0;u<l;u++) //482.
fputc(datahd[u],fp); //483.
fclose(fp); //484.
setviewport(0,60,600,80,0); //485.
clearviewport(); //486.
setviewport(0,60,600,80,0); //487.
outhz(0,0,"文件拷贝成功,按任" //488.
"一键继续运行程序",7); //489.
getch(); //490.
} //491.
if(ch==78) //492.
{ //493.
break; //494.
} //495.
} //496.
} //497.
//498.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -