typedefstructonline
{
charname[20];
intfd;
}ONL;
在线程中调用的这个函数。
文件online存结构体数组。现有name,然后删除文件中相同name的结构体
为什么都对,到最后一步rename好像没执行,最后文件中只有online1
voidoffline(char*name)
{
FILE*fp,*fp2;
ONL*OnlInfo;
fp=fopen("online","r");
fp2=fopen("online1","w");
if(fp==NULL)
{
printf("ononeonline!");
}
else
{
OnlInfo=(ONL*)malloc(sizeof(ONL));
while(!feof(fp))
{
memset(OnlInfo,0,sizeof(ONL));
if((fread(OnlInfo,sizeof(ONL),1,fp)!=0)&&(strcmp(OnlInfo->name,name)!=0))
{
fwrite(OnlInfo,sizeof(ONL),1,fp2);
}
}
if(OnlInfo!=NULL)
{
free(OnlInfo);
OnlInfo=NULL;
}
fclose(fp2);
fclose(fp);
}
remove("online");
rename("online1","online");
};
分 -->
|