此论坛的新功能 - 看起来很棒! 我有一些处理代码,它定期从远程设备无线读取数据,并将该数据作为字节写入文件,例如, data.dat文件。我想在我的Mac Mini上使用Xcode编写一个Objective C程序来读取该文件,解析数据,并在数据值表明存在问题时对数据进行操作。我的问题是:我的两个不同的程序可以异步访问同一个文件而没有问题吗?如果 ,您可以建议一种可以进行这些操作的技术吗? 谢谢, 凯文H.
答案 0 :(得分:0)
多个进程可以一次从同一个文件读取而没有任何问题。进程也可以从文件中读取,而另一个进程可以正常写入,但您必须注意确保读入已写入的任何新数据。但是,多个进程不应该同时写到同一个文件。操作系统会让你这样做,但数据的排序将是不确定的,而且你喜欢覆盖数据 - 一般情况下,如果你这样做,你将会遇到糟糕的时间。因此,您应该注意确保一次只有一个进程写入文件。
保护文件以便一次只能有一个进程可以写入文件的最简单方法是使用C函数flock()
,尽管该函数无疑是有点基本的,可能适用于您的用例,也可能不适合您的用例