同时访问同一文件-是否需要互斥锁?

我处于需要异步读取和写入同一文件的情况。 可以按以下方式恢复访问该文件的代码:

std::string my_bin_filename = "binary_file.bin";

void read_thread(void)
{
    std::ifstream ifs(my_bin_filename,std::ios::binary);
    char buffer[1024];

    do
    {   
        ifs.readsome(buffer,sizeof(buffer));
        if(ifs.gcount() > 0)
        {
            /*  
                process buffer
                ...
            */
        }

    } while (read_condition);
    ifs.close();
}

void write_thread(void)
{
    std::ofstream ofs(my_bin_filename,std::ios::binary);
    char buffer[1024];

    do
    {   
        /*  
            do something with buffer data
            ...
        */

        ofs.write(buffer,sizeof(buffer));

    } while (write_condition);

    ofs.close();
}

在这种情况下是否需要使用互斥锁?
我认为这不是必需的,但也许我可能是错的。

sc111229 回答:同时访问同一文件-是否需要互斥锁?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1465077.html

大家都在问