linux 下c 线程中 调用 函数rename,为什么 没有改掉文件命啊

[复制链接]
查看11 | 回复4 | 2021-1-27 06:45:11 | 显示全部楼层 |阅读模式
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");
};
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:45:11 | 显示全部楼层
求来人啊昂昂
回复

使用道具 举报

千问 | 2021-1-27 06:45:11 | 显示全部楼层
大神在哪里呢
回复

使用道具 举报

千问 | 2021-1-27 06:45:11 | 显示全部楼层
rename成功or失败?看下错误码。
回复

使用道具 举报

千问 | 2021-1-27 06:45:11 | 显示全部楼层
if(rename(oldname,newname)==0)
printf("Renamed%sto%s.\n",oldname,newname);
else
perror("rename");
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行