?? eamain.c
字號:
//********************************************
//文件名:EAMAIN.C
//功能:1. 調用讀扇區匯編子程序
// 2. 調用寫扇區匯編子程序
// 3. 對扇區數據進行十六進制讀、字符讀、
// 備份、拷貝、搬移、寫入、清零操作
//********************************************
#include<stdio.h> //1.
#include<string.h> //2.
#include<conio.h> //3.
#include<ctype.h> //4.
#include<stdlib.h> //5.
extern RHD(int,int,int,int,char *); //6.對讀扇區匯編子程序的聲明
extern WHD(int,int,int,int,char *); //7.對寫扇區匯編子程序的聲明
void main(int argc,char *argv[]) //8.
{ //9.
FILE *tmfp,*fp; //10.
char h[512]; //11.
char name[13]; //12.
char sh[13]; //13.
char ch; //14.
int i,c; //15.
unsigned long k,k1; //16.
long t=0; //17.
unsigned char s1,s2,s3,s4; //18.
//19.
if(argc==1) //20.若命令行參數為1
{ //21.
printf("Enter EALLSE /? to get help."); //22.
printf("\n"); //23.
exit(0); //24.
} //25.
strcpy(sh,argv[1]); //26.拷貝字符串
if((strcmp(sh,"/?")==0)&&argc==2) //27.顯示幫助提示
{ //28.
printf("The syntax of EALLSE.EXE is:"); //29.
printf("\n"); //30.
printf("1.EALLSE [/?] is to get help."); //31.
printf("\n"); //32.
printf("2.EALLSE [/rh] is read sector."); //33.
printf("\n"); //34.
printf("3.EALLSE [/rc] is read sector."); //35.
printf("\n"); //36.
printf("4.EALLSE [/b] is backup sector."); //37.
printf("\n"); //38.
printf("5.EALLSE [/c] is copy sector."); //39.
printf("\n"); //40.
printf("6.EALLSE [/m] is move sector."); //41.
printf("\n"); //42.
printf("7.EALLSE [/w] is write sector."); //43.
printf("\n"); //44.
printf("8.EALLSE [/cle] is clear sector.");//45.
printf("\n"); //46.
exit(0); //47.
} //48.
//49.
if((strcmp(sh,"/rh")==0) //50.十六進制顯示
||(strcmp(sh,"/RH")==0)&&argc==2) //51.
{ //52.
printf("Enter sector number: "); //53.
scanf("%lu",&k); //54.
tmfp=tmpfile(); //55.
fwrite(&k,4,1,tmfp); //56.
rewind(tmfp); //57.
fread(&s4,1,1,tmfp); //58.
fread(&s3,1,1,tmfp); //59.
fread(&s2,1,1,tmfp); //60.
fread(&s1,1,1,tmfp); //61.
fclose(tmfp); //62.
tmpnam(name); //63.建立一個臨時文件名
RHD(s1,s2,s3,s4,name); //64.調用讀扇區匯編子程序
clrscr(); //65.清屏
fp=fopen(name,"rb"); //66.
for(i=1;i<=512;i++) //67.
{ //68.
c=fgetc(fp); //69.
printf("%2x",c); //70.顯示十六進制數據
if(i%32==0) //71.
printf("\n"); //72.
} //73.
printf("\n"); //74.
rewind(fp); //75.調整文件指針
for(i=0;i<=511;i++) //76.
fread(&h[i],1,1,fp); //77.
fclose(fp); //78.
remove(name); //79.刪除臨時文件
printf("\n"); //80.
for(i=0;i<=511;i++) //81.
t+=h[i]; //82.字節值累加
printf("Total : %ld\n",t); //83.
} //84.
//85.
if((strcmp(sh,"/rc")==0) //86.字符顯示
||(strcmp(sh,"/RC")==0)&&argc==2) //87.
{ //88.
printf("Enter sector number: "); //89.
scanf("%lu",&k); //90.
tmfp=tmpfile(); //91.
fwrite(&k,4,1,tmfp); //92.
rewind(tmfp); //93.
fread(&s4,1,1,tmfp); //94.
fread(&s3,1,1,tmfp); //95.
fread(&s2,1,1,tmfp); //96.
fread(&s1,1,1,tmfp); //97.
fclose(tmfp); //98.
tmpnam(name); //99.
RHD(s1,s2,s3,s4,name); //100.
clrscr(); //101.
fp=fopen(name,"rb"); //102.
for(i=1;i<=512;i++) //103.
{ //104.
c=fgetc(fp); //105.
printf("%c ",c); //106.顯示字符
if(i%32==0) //107.
printf("\n"); //108.
} //109.
printf("\n"); //110.
rewind(fp); //111.
for(i=0;i<=511;i++) //112.
fread(&h[i],1,1,fp); //113.
fclose(fp); //114.
remove(name); //115.
printf("\n"); //116.
for(i=0;i<=511;i++) //117.
t+=h[i]; //118.
printf("Total : %ld\n",t); //119.
} //120.
//121.
if((strcmp(sh,"/b")==0) //122.將扇區數據備份到文件
||(strcmp(sh,"/B")==0)&&argc==2) //123.
{ //124.
printf("Enter sector number: "); //125.
scanf("%lu",&k); //126.
printf("Enter file name: "); //127.
scanf("%s",name); //128.
tmfp=tmpfile(); //129.
fwrite(&k,4,1,tmfp); //130.
rewind(tmfp); //131.
fread(&s4,1,1,tmfp); //132.
fread(&s3,1,1,tmfp); //133.
fread(&s2,1,1,tmfp); //134.
fread(&s1,1,1,tmfp); //135.
fclose(tmfp); //136.
RHD(s1,s2,s3,s4,name); //137.
clrscr(); //138.
fp=fopen(name,"rb"); //139.
for(i=1;i<=512;i++) //140.
{ //141.
c=fgetc(fp); //142.
printf("%2x",c); //143.
if(i%32==0) //144.
printf("\n"); //145.
} //146.
printf("\n"); //147.
fclose(fp); //148.
} //149.
//150.
if((strcmp(sh,"/c")==0) //151.拷貝扇區數據
||(strcmp(sh,"/C")==0)&&argc==2) //152.
{ //153.
printf("Enter SOURCE sector number: "); //154.
scanf("%lu",&k); //155.
printf("Enter TARGET sector number: "); //156.
scanf("%lu",&k1); //157.
tmfp=tmpfile(); //158.
fwrite(&k,4,1,tmfp); //159.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -