我将 UBIFS 用于 NAND 上的 rootfs。当我使用 nano 命令编辑 /etc/rc.local 之类的文件并保存时,“cat /etc/rc.local”当然会显示编辑后的内容。但是在移除电源(没有reboot 或poweroff 命令)并再次供电后,/etc/rc.local 的内容变为空。
我发现写入的数据在UBIFS中并没有立即写入NAND并写入缓存。(参考:http ://www.linux-mtd.infradead.org/faq/ubifs.html#L_empty_file )
我想在编辑后直接同步到 NAND。我找到的唯一解决方案是 fsync,但这应该在 C 程序中调用,并且需要文件描述符。Nano 命令等没有给我们文件描述符。所以我无法解决这个同步问题。
如何解决这个不同步到 NAND 的问题?有同步命令吗?如果我想在 UBIFS 中编辑和保存文件,是否必须使用 C 程序编辑文件并使用 fsync?