免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4985 | 回复: 12
打印 上一主题 下一主题

文件删除自身的方法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-06 18:20 |只看该作者 |倒序浏览
如题。。还有text file busy这个错误是怎么产生滴?哪个大大告诉下

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-01-06 19:08 |只看该作者
文件怎么删除自身?
它只是一个文件,不是进程。

论坛徽章:
0
3 [报告]
发表于 2007-01-06 19:26 |只看该作者
可执行文件,执行之后删除自己。。。

论坛徽章:
0
4 [报告]
发表于 2007-01-06 19:29 |只看该作者
我也遇到过,我的程序在运行,我删除不了,理由也是这个
我一直不知道为什么。后来忘记这个问题了。 可以看看这个错误对应的errno是多少

论坛徽章:
0
5 [报告]
发表于 2007-01-06 19:43 |只看该作者
我只知道在Windows下自删除的方法

论坛徽章:
0
6 [报告]
发表于 2007-01-06 20:13 |只看该作者

  1. remove( argv[0] );
复制代码

论坛徽章:
0
7 [报告]
发表于 2007-01-06 20:41 |只看该作者
谢谢isnowran 简单试了下可以,等再拿到程序里看看

不知道remove可不可以删除正在下载的程序

论坛徽章:
0
8 [报告]
发表于 2007-01-06 21:02 |只看该作者
通常程序的代码段是要共享的,该段不可写(但是文件可被删除)。
如果向一个正在运行的程序的磁盘文件进行写操作,会引发text file busy错误。

论坛徽章:
0
9 [报告]
发表于 2007-01-06 21:17 |只看该作者
原帖由 assiss 于 2007-1-6 21:02 发表
通常程序的代码段是要共享的,该段不可写(但是文件可被删除)。
如果向一个正在运行的程序的磁盘文件进行写操作,会引发text file busy错误。


那么我 fork() 出一个子进程来,子进程脱离父进程而归 init 管,然后父进程退出,可以吗?

论坛徽章:
0
10 [报告]
发表于 2007-01-06 21:20 |只看该作者
原帖由 langue 于 2007-1-6 21:17 发表


那么我 fork() 出一个子进程来,子进程脱离父进程而归 init 管,然后父进程退出,可以吗?

fork之后,这个文件仍然被共享代码段(子进程执行exec的情况我没有测试过,不过如果执行了EXEC,那么子进程跟该文件就无关了,应该不再共享该文件的代码段),所以仍然只能删,不能写,一写就会引发TEXT FILE BUSY错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP