我处于需要异步读取和写入同一文件的情况。 可以按以下方式恢复访问该文件的代码:
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();
}
在这种情况下是否需要使用互斥锁?
我认为这不是必需的,但也许我可能是错的。