int my_mkdir(char *dirname)
{
int i,j;
struct FCB *cur_mkdir = root;
char dir ;
for(j = fd ; j >= 0 ; j--)
if(openfilelist[j].attribute == 0)
break;
dir = openfilelist[j].nextdirectory;
if( strlen(dirname) > 10)
return -1;
//if(lengthdir == 32)
// return -2; //full
for(i = 0 ; i < MAXOPENFILE ; i++)
{
if(openfilelist[i].topenfile == -1)
break;
}
if(i == MAXOPENFILE)
return -3;
if(dir == -1)
{
for(i = 0 ; i < MAXFCB ; i++)
{
if(cur_mkdir[i].attribute == -1)
break;
}
if(i == MAXFCB)
return -2;
/*-------------填写目录项----------*/
strcpy(cur_mkdir[i].filename,dirname);
cur_mkdir[i].attribute = 0;
cur_mkdir[i].data = 0;
cur_mkdir[i].time = 12;
cur_mkdir[i].nextdirectory = -1;
cur_mkdir[i].nextfile = -1;
cur_mkdir[i].length = 0;
cur_mkdir[openfilelist[fd].topenfile].nextdirectory = i;
openfilelist[fd].nextdirectory = i;
openfilelist[fd].fcbstate = 1;
}
else
{
while(cur_mkdir[dir].nextfile != -1)
{
if(!strcmp(cur_mkdir[dir].filename,dirname))
return -4;
dir = cur_mkdir[dir].nextfile;
}
if(!strcmp(cur_mkdir[dir].filename,dirname))
return -4;
for(i = 0 ; i < MAXFCB ; i++)
{
if(cur_mkdir[i].attribute == -1)
break;
}
if(i == MAXFCB)
return -2;
/*-------------填写目录项----------*/
strcpy(cur_mkdir[i].filename,dirname);
cur_mkdir[i].attribute = 0;
cur_mkdir[i].data = 0;
cur_mkdir[i].time = 12;
cur_mkdir[i].nextdirectory = -1;
cur_mkdir[i].nextfile = -1;
cur_mkdir[i].length = 0;
cur_mkdir[dir].nextfile = i;
openfilelist[fd].fcbstate = 1;
}
lengthdir++;
return 1;
}
int my_mkdir(char *dirname)
{
int i,j;
str