相关疑难解决方法(0)

Linux是否保证在close()之后文件的内容被刷新到光盘?

当使用close()或fclose()(例如)关闭文件时,Linux是否保证将文件写回(持久)光盘?

我的意思是,如果close()返回0然后立即断电,以前写的数据是否保证会持续存在,即是否持久?

该fsync()系统调用确实提供了这种保证.关闭文件也足够了吗?

我找不到任何可能以某种方式提出任何要求的东西.


问题2:

如果close()隐含地做了fsync(),有没有办法告诉它不要?

linux filesystems file-io

23
推荐指数
4
解决办法
1万
查看次数

为什么这个C++程序在Windows上比Linux慢?

考虑以下程序:

#define _FILE_OFFSET_BITS 64   // Allow large files.
#define REVISION "POSIX Revision #9"

#include <iostream>
#include <cstdio>
#include <ctime>

const int block_size = 1024 * 1024;
const char block[block_size] = {};

int main()
{
    std::cout << REVISION << std::endl;  

    std::time_t t0 = time(NULL);

    std::cout << "Open: 'BigFile.bin'" << std::endl;
    FILE * file;
    file = fopen("BigFile.bin", "wb");
    if (file != NULL)
    {
        std::cout << "Opened. Writing..." << std::endl;
        for (int n=0; n<4096; n++)
        {
            size_t written = fwrite(block, 1, block_size, file); …
Run Code Online (Sandbox Code Playgroud)

c++ windows io microbenchmark

6
推荐指数
1
解决办法
630
查看次数

标签 统计

c++ ×1

file-io ×1

filesystems ×1

io ×1

linux ×1

microbenchmark ×1

windows ×1