在UBI文件系统中将文件从源复制到目标

时间:2019-12-31 04:44:39

标签: c file

I want to copy file from source to destination.
But in case of destination folder size is small compare to source file.
It does not fail write, always return success and this behaviour I have observed in UBI file system only.
while ((size = fread(buffer, 1, BUFSIZ, source)) > 0)
{
    size_t size_2 = fwrite(buffer, 1, size, destination);
    if (size_2 != size)
    {
        retval = -1;
        break;
    }
}

在UBIFS中支持回写,在该回写中,文件更改将被缓存并稍后转到闪存。任何人都知道如何验证其写状态。

1 个答案:

答案 0 :(得分:0)

您可以使用fsync验证写回状态。

引用以下来源:

  

传输(“刷新”)...文件的所有修改后的核心数据   由文件描述符fd引用到磁盘设备(或其他)   永久存储设备),以便可以将所有更改的信息   即使系统崩溃或重新启动也可以检索到。这包括   写入或刷新磁盘缓存(如果存在)

http://man7.org/linux/man-pages/man2/fdatasync.2.html