⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c.c

📁 这个是在linux下面的用c语言读写虚拟软盘的源程序
💻 C
字号:
#include<stdio.h>struct f{char filename[8];char fileex[3];char shuxing;char baoliu[10];char shijian[2];char riqi[2];char qishi[2];char daxiao[4];}file[244];int QFAT(int f,char qs[2]){  char fato[3],fati[3];  int i,seek,qss[2],g,fat[3];  for(i=0;i<2;i++)   {    if(qs[i]<0)qss[i]=qs[i]+256;    else qss[i]=qs[i];   }  while(1)  {   printf("Q:::qss[1]:%d|qss[0]:%d|\n",qss[1],qss[0]);   if((qss[0]%2)==0)g=0;   else g=1;   printf("seek:%d|\n",seek=(qss[0]/2)*3+qss[1]*384);   lseek(f,512+seek,SEEK_SET);   read(f,fato,3);   for(i=0;i<3;i++)   {     if(fato[i]<0)fat[i]=fato[i]+256;     else fat[i]=fato[i];   }   if(g==0)   {     fati[0]=0x00;     fati[1]=fat[1]&0x000000F0;     fati[2]=fat[2];   }   else   {     fati[0]=fat[0];     fati[1]=fat[1]&0x0000000F;     fati[2]=0x00;   }   lseek(f,512+seek,SEEK_SET);   write(f,fati,3);   lseek(f,5120+seek,SEEK_SET);   write(f,fati,3);   if(g==0)   {     qss[0]=fat[0];     qss[1]=fat[1]%16;   }   else   {     qss[0]=(fat[1]%256)/16+(fat[2]%16)*16;     qss[1]=fat[2]/16;   }  // for(i=0;i<2;i++){if(qs[i]<0)qss[i]=qs[i]+256;else qss[i]=qs[i];} printf("GGH:::qss[1]:%d|qss[0]:%d\n",qss[1],qss[0]);   if(qss[0]>=248&&qss[1]>=15||qss[0]==0x00&&qss[1]==0x00)break;  }  return 0;}int fd_rm(char *name){    int f,where,i=0,j=0,ll=0,l=0,k=0;	char nam[11];	char qs[2];	if((f=open("/dev/fd0",2))!=-1)	{        lseek(f,512*19,SEEK_SET);		read(f,file,7168);		i=0;		j=0;                k=0;		while(1)		{			if(file[i].filename[0]!=0xF5&&                           file[i].filename[0]!=0x00&&                           file[i].shuxing!=0x08)			{				l=0;                                while(file[i].filename[l]!=0x20&&l<8)                                {                                 nam[l]=file[i].filename[l];                                 l++;                                }                                ll=0;                                       while(file[i].fileex[ll]!=0x20&&ll<3)                                {                                 if(ll==0){l++;nam[ll+l-1]='.';}                                 nam[ll+l]=file[i].fileex[ll];                                 ll++;                                }              			nam[l+ll]='\0';		        	while(nam[j]!=0x20&&name[j]!='\0')				{                                 if(name[j]=='\0')break;                                 if(nam[j]!=name[j])break;			       	 j++;				}				if(nam[j]=='\0'&&                                   name[j]=='\0')				{					qs[0]=file[i].qishi[0];					qs[1]=file[i].qishi[1];					file[i].filename[0]=0xE5;//                                       file[i].filename[1]=0x00;  //                                      file[i].filename[2]=0x00;    //                                    file[i].filename[3]=0x00;      //                                  file[i].filename[4]=0x00;        //                                file[i].filename[5]=0x00;          //                              file[i].filename[6]=0x00;            //                            file[i].filename[7]=0x00;              //                          file[i].filename[8]=0x00;                //                        file[i].filename[9]=0x00;                  //                      file[i].filename[10]=0x00;                                        lseek(f,512*19,SEEK_SET);					write(f,file,7168);					if(QFAT(f,qs)==-1)return -1;					break; 				}			}			j=0;			i++;			if(i==244)break;		}		if(i==244)		{			printf("error to find file\n");			return -1;		}		else return 0;	}	else printf("ERROR TO OEPN EDVICE!\n");	return -1;}void main(){  char *a,b[11];  a=b;  scanf("%s",a);  printf("%d\n",fd_rm(a));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -