调用unlink,但是文件没有被删除,什么原因??

qiron 2003-06-03 09:02:21
返回值为-1,运行正常,但是文件没有删除,不知道到什么原因,各位大侠指教!!
...全文
294 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiron 2003-06-05
  • 打赏
  • 举报
回复
提前不了,只能手动up了
qiron 2003-06-04
  • 打赏
  • 举报
回复
c语言中还有没有别的函数可以删除文件呢?
qiron 2003-06-04
  • 打赏
  • 举报
回复
根本不存在目录的问题阿,我在当前路径生成,当前路径删除阿~~就和上面的例程一样。上面的例程我试过是可以的。
pzytony 2003-06-04
  • 打赏
  • 举报
回复

请你检查一下

是不是目录写错了

例如:int check = unlink("E:\\path\\e.txt");

要写两个 "\"!!!!!
pzytony 2003-06-04
  • 打赏
  • 举报
回复

函数名: unlink
功 能: 删掉一个文件
用 法: int unlink(char *filename);
程序例:

#include <stdio.h>
#include <io.h>

int main(void)
{
FILE *fp = fopen("junk.jnk","w");
int status;

fprintf(fp,"junk");

status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");

fclose(fp);
unlink("junk.jnk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");


return 0;
}



qiron 2003-06-04
  • 打赏
  • 举报
回复
还有我在网上好像查到说“unlink当发生错误则返回 0 或 false”。前面不是有大侠说0才是正确返回。
qiron 2003-06-04
  • 打赏
  • 举报
回复
前面有文件指针f=fopen(filename,"rb")或者f=fopen(filename,"wb+")指向它,可是我已经在删除前执行fclose(f)了。文件还是存在的。大致的流程就是先向文件写入数据,然后读取,希望读取之后删除,可惜不能成功。
sxbobo2002 2003-06-03
  • 打赏
  • 举报
回复
情况有很多
如:晨星所说
还有就是,如果在程序之前有文件指针fp=fopen("file","wb+")指向它,应该在删除之前将指针释放掉fclose(fp);后再用unlink("file");删除.
疯狂的魔法 2003-06-03
  • 打赏
  • 举报
回复
对嘛,0才是正确返回
晨星 2003-06-03
  • 打赏
  • 举报
回复
返回-1表示失败呀。文件存在否?路径名有没有写错?文件是否为只读?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧