📄 readd.c
字号:
#include <stdio.h>#include <linux/fs.h>int i,j,num=512,f,l;void writedisk(){ FILE *fp; int where; char buffer[512]; char file,filename[30]; if((f=open("/dev/fd0",1))!=-1) { printf("Which disk:"); scanf("%d",&where); lseek(f,512*where,SEEK_SET); printf("From file(y/n):"); scanf("%c",&file); while(file!='y'&&file!='n')scanf("%c",&file); if(file=='y') { printf("Filename:"); scanf("%s",filename); while(1) { if((fp=fopen(filename,"r"))!=-1) { fread(buffer,512,1,fp); break; } else { printf("Error to open file!\nFilename:"); scanf("%s",filename); } } } else { printf("IN:"); scanf("%s",buffer); } write(f,buffer,num); close(f); } else { printf("Error to open device for write!"); exit(0); }}void OutToFile(int *buff){ FILE *fp; char filename[30]; int k=0,kl[3]; printf("filename:"); scanf("%s",filename); while(1) { if((fp=fopen(filename,"w"))!=-1) { for(i=0;i<32&&i<32;i++) { fprintf(fp,"0"); kl[0]=k/256; kl[1]=(k%256)/16; kl[2]=k%16; for(l=0;l<3;l++) { if(kl[l]<10)fprintf(fp,"%c",('0'+kl[l])); else fprintf(fp,"%c",('A'+kl[l]-10)); } fprintf(fp," "); k+=16; for(j=0;j<16;j++) { kl[0]=buff[16*i+j]/16; kl[1]=buff[16*i+j]%16; for(l=0;l<2;l++) { if(kl[l]<10)fprintf(fp,"%c",'0'+kl[l]); else fprintf(fp,"%c",'A'+kl[l]-10); } if(j==7)fprintf(fp,"-"); else fprintf(fp," "); } fprintf(fp," "); for(j=0;j<16;j++) { if(buff[i*16+j]>=0x20&&buff[i*16+j]<0x7f) fprintf(fp,"%c",buff[i*16+j]); else fprintf(fp,"."); } fprintf(fp,"\n"); } break; } else { printf("Error to open file!\nFilename:"); scanf("%s",filename); } }}void OutToScreen(int *buff){ int k=0,kl[3]; for(i=0;i<32&&i<32;i++) { printf("0"); kl[0]=k/256; kl[1]=(k%256)/16; kl[2]=k%16; for(l=0;l<3;l++) { if(kl[l]<10)printf("%c",('0'+kl[l])); else printf("%c",('A'+kl[l]-10)); } printf(" "); k+=16; for(j=0;j<16;j++) { kl[0]=buff[16*i+j]/16; kl[1]=buff[16*i+j]%16; for(l=0;l<2;l++) { if(kl[l]<10)printf("%c",'0'+kl[l]); else printf("%c",'A'+kl[l]-10); } if(j==7)printf("-"); else printf(" "); } printf(" "); for(j=0;j<16;j++) { if(buff[i*16+j]>=0x20&&buff[i*16+j]<0x7f) printf("%c",buff[i*16+j]); else printf("."); } printf("\n"); }}void readdisk(){ char BF[512],file; int buff[512],where; FILE *fp; if((f=open("/dev/fd0",0))!=-1) { printf("Which disk:"); scanf("%d",&where); lseek(f,512*where,SEEK_SET); num=read(f,BF,num); for(i=0;i<num;i++) { if(BF[i]<0)buff[i]=BF[i]+256; else buff[i]=BF[i]; } while(1) { printf("OUT TO FILE(y/n):"); scanf("%c%c",&file,&file); if(file=='y'||file=='n')break; } if(file=='y') { OutToFile(buff); } else { OutToScreen(buff); } } else { printf("Error to open device for write!"); exit(0); } }main(){ int way; while(1) { printf("write(1)|read(2)|end(0):"); scanf("%d",&way); if(way==0)exit(0); else { if(way==1) { writedisk(); } else if(way==2) { readdisk(); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -