假设我有一个(股票)android 4.x平板电脑通过USB连接到微控制器板。 该板能够作为USB大容量存储器访问SD卡并读取/写入文件 在卡上。 现在应该在平板电脑上有一个应用程序,它可以读取/写入与主板相同的文件。 因此,可以从电路板和应用程序同时进行读/写文件访问。
为了避免数据不一致等,我会在应用程序读/写文件时使用独占FileLock。 现在我的问题是,如果FileLock“足够低”还能在这种情况下工作并防止数据不一致吗?
THX
答案 0 :(得分:0)
虽然使用FileLock
确保两个应用程序无法同时写入文件,但应用程序逻辑可能会阻止该方案。您仍然需要正确编码。特别是,如果一个应用程序读取文件,进行更改然后“等待”以获取文件锁定以写入文件 - 那么它可能会将“旧”信息写回文件。
答案 1 :(得分:0)
在FileLock的文档中找到了这个:
锁定旨在成为真正的平台操作系统文件锁定,因此VM保持的锁定对其他操作系统进程可见。
我想通过USB访问SDCard是由某些操作系统的进程控制的,因此锁定也应该对微控制器可见。