免费注册 查看新帖 |

Chinaunix

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

文件的行删除问题,请教大家 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-08 09:31 |只看该作者 |倒序浏览
我想删除一文本文件的某些行,也就是行删除
有这样的库函数可用吗?
或者大家给个思路,谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-12-08 09:43 |只看该作者

文件的行删除问题,请教大家

没有
创建一个临时文件,把要保留的行写入,删掉原文件,把临时文件改名为原文件名即可

论坛徽章:
0
3 [报告]
发表于 2003-12-08 09:51 |只看该作者

文件的行删除问题,请教大家

原文件是不可以删除的,我行删除就是为了维护文件的大小,这个文件别的程序还读着呢,删掉文件指针就丢了

我只有想办法行删除了

论坛徽章:
0
4 [报告]
发表于 2003-12-08 09:55 |只看该作者

文件的行删除问题,请教大家

方法同样,不过要保证对此文件的操作是互斥的。
创建一个临时文件,把要保留的行写入,将原文件清空,把临时文件内容写入原文件即可,删掉临时文件。

论坛徽章:
0
5 [报告]
发表于 2003-12-08 10:19 |只看该作者

文件的行删除问题,请教大家

用shell应该可以吧。

论坛徽章:
0
6 [报告]
发表于 2003-12-08 12:23 |只看该作者

文件的行删除问题,请教大家

原帖由 "liuleisoft" 发表:
方法同样,不过要保证对此文件的操作是互斥的。
创建一个临时文件,把要保留的行写入,将原文件清空,把临时文件内容写入原文件即可,删掉临时文件。



“对此文件的操作是互斥的”什么意思啊 ?

比如文件a,我一个程序A读它,是死循环,文件指针一直打开着,程序B来做行删除,它如何保证A的指针不丢呢

做临时文件的方法可行吗?

论坛徽章:
0
7 [报告]
发表于 2003-12-08 12:58 |只看该作者

文件的行删除问题,请教大家

可以肯定,这个文件a是共享打开的。
程序B可以使用文件锁定函数,在进行行删除时先锁定文件,完成内容修改后,解锁文件。这样程序A读文件a的时候就不会读到程序B未修改完的数据。

“互斥”是一种概念。读《操作系统》吧。

论坛徽章:
0
8 [报告]
发表于 2003-12-08 17:40 |只看该作者

文件的行删除问题,请教大家

to liuleisoft   :
好人做到底把
------------文件锁定函数,函数叫什么名
我也好查找一下
谢谢了

论坛徽章:
0
9 [报告]
发表于 2003-12-09 08:37 |只看该作者

文件的行删除问题,请教大家

我可真服了你了,不过要在CSDN上把分加给liuleilover知道吗.

以下函数不知道能不能对共享打开的文件起作用,自己尝试.
Unix,linux:
#include <sys/file.h>;
int flock(int fd,int operation);

Windows:
在MSDN上找
LockFile
UnLockFile

最好用进程间互斥访问此共享文件.具体方法,自己找.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP