首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查另一个程序是否打开了文件

检查另一个程序是否打开了文件
EN

Stack Overflow用户
提问于 2012-01-05 17:48:22
回答 5查看 704关注 0票数 3

在做了大量的研究,也没有找到解决我的问题的方法之后,我决定在stackoverflow上发表文章。

嗯,我的问题有点不寻常,所以我想这就是为什么我找不到任何答案的原因:

我有一个将内容录制到文件中的程序。然后我有另一个负责传输该文件的人。最后,我有第三个获取文件并处理它的函数。

我的问题是:文件传输程序需要在文件仍在录制时发送文件。问题是,当文件传输程序到达文件末尾时,文件上的文件并不意味着文件实际上是完整的,因为它仍在被记录。

如果有一些东西来检查记录器是否仍然打开该文件,或者它是否已经关闭了它,以便能够判断文件的结尾是否真正是文件的结尾,或者是否根本没有要读取的进一步数据,这将是一件很好的事情。

希望你能帮我解决这个问题。也许你对如何解决这个问题有另一个想法。

提前谢谢你。

GeKod

EN

Stack Overflow用户

回答已采纳

发布于 2012-01-05 17:52:27

简单地说-你不能不使用文件系统通知机制,windows,linux和osx都有这样的风格。我忘记了Windows是怎么做的,但是linux有“inotify”,osx有“knotify”。

处理这种情况的简单方法是,记录到一个临时文件,当记录完成后,将该文件移动到“准备传输文件”目录中,如果您这样做,以便当您执行移动时,这些文件在同一文件系统上,它将是原子的和即时的,确保任何时候您的传输实用程序“看到”新文件时,它将完全形成并准备就绪。

或者,让您的临时文件没有扩展名,然后在完成后,将文件重命名为传输代理正在轮询的扩展名。

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8740409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档