访问当前正在写入的文件

时间:2011-01-31 21:56:40

标签: file-io

如果一个文件处于写入过程中,此时如果我尝试访问它,就好像它是一个每10毫秒写一次的日志文件而我试图访问它会损坏或打扰写作过程?

具体来说,我问的是视频文件,比如我是否开始录制过程(使用Windows Media Encoder),此时我想监视文件,如果它是一个空白文件(到处都是黑色像素)或者有正在录制的内容。

很抱歉,如果我的问题是新手问题,但我真的需要确定这一点。

最佳提前

1 个答案:

答案 0 :(得分:1)

通常,您可以在编写文件时读取文件,而不会破坏其内容。但是:

  1. 如果您的记录媒体无法处理组合数据速率或读取和写入,则 可能会面临问题。这可能是一个问题,特别是对于慢速USB闪存驱动器。

  2. 如果读取和写入的组合超过了硬盘驱动器可以处理的随机搜索率,那么 也可能面临硬盘驱动器上的问题。在处理高清视频时,这可能更容易在旧驱动器(例如IDE)上发生。

  3. 最终结果是,如果你有一个实时的编写过程,比如电视录像机,它可能会被迫丢弃一些数据 - 如果是视频几帧。

    现代系统具有相当快的磁盘子系统,相当好的I / O调度程序和足够大的RAM容量以允许广泛的数据缓存,这使得单个写入器/读取器组合不太可能使磁盘子系统饱和,除非您是做一些不寻常的事情,比如一次录制几个视频流。

    但请记住:

    1. 磁盘子系统也可能被不相关的进程读取/写入来自同一驱动器的其他文件。

    2. 如果您正在编码视频,如果某些内容消耗了足够的CPU资源,编码过程无法满足实时要求,您也可能会丢失帧。根据视频文件的不同,测试播放可能就足够了 - 至少HD复制可能非常苛刻。因此,在依靠它来记录您最喜欢的节目之前,请注意您的CPU负载和实验: - )

    3. 编辑:

      如果您是拥有SSD驱动器的幸运者之一,那么搜索和数据速率通常应该是无问题的。这就离开了CPU - 你会惊讶于将它推到极限是多么容易。

      最重要的是,您应该尝试找出每个特定应用程序的系统限制。这样你就不会有任何令人讨厌的惊喜......