如何一致地访问文件?

时间:2014-05-25 16:48:38

标签: java python c multiplatform

我正在寻找一种方法来选择一个文件,一个时间范围/或直到某个动作被执行,并且"使用"或"阅读"这段时间的文件。只是一种阻止其他程序访问它的方法。作为我公司的质量保证部门需要这样的应用程序,我相信它可以实现,但我不知道如何处理这个问题。可能"阅读"文件一遍又一遍,直到达到时间或执行某个操作?

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

对于Java,答案是使用FileLock,它映射到操作系统的本机机制。

答案 1 :(得分:0)

在Linux上,您可以使用flock等系统调用阻止文件访问。

一种相当低技术的替代方案可以是:

  1. 阅读文件
  2. 将其保存在记忆中。
  3. 删除文件。
  4. 使用您的记忆副本。
  5. 完成后,将内存复制文件转储到具有相同名称的新文件中。
  6. 第二种方法受文件和系统内存大小的限制,此外如果系统在到达第5步之前停止工作,您可能会丢失文件。这只是系统调用的一种愚蠢的替代方法。我更喜欢使用系统API服务,例如flock