想通过一个线程对文件进行读写,但是打开节点以后读写会报错
std::thread keep_screen_on_thread;
void keep_screen_on() {
std::fstream fs("D:/2022_03/080322/screen");
std::string content = "121211221";
if (!fs.is_open()) {
printf("Open node error!\n");
return;
}
printf("Open node success!\n");
keep_screen_on_thread = std::thread([&] {
mu.lock();
//报错位置
fs << content;
printf("content = %s\n", content.c_str());
mu.unlock();
});
}
int main() {
keep_screen_on();
keep_screen_on_thread.join();
getchar();
return 0;
}
问题出在fs<<content,基础有点忘了,网友们帮看下怎么解决
你用多线程,用lamda表达是要注意变量的生存期