我试图在下面的c ++程序中分离线程,这样即使在proccess终止之后,线程也会继续在文本文件中写入一些字符。 问题是我不能完成它: 当程序终止时,线程停止写入“file.txt”文件。你可以帮助我吗?或者这根本不可能吗?
#include<thread>
#include<stdio.h>
using namespace std;
void printToFile()
{
FILE *file;
for (int i = 0; true; i++)
{
fopen_s(&file, "file.txt", "w");
fprintf(file, "%s%d", "n: ",i);
fclose(file);
}
return;
}
int main()
{
thread t(printToFile);
t.detach();
return 0;
}
答案 0 :(得分:0)
这是不可能的。当你的“主”线程终止时,所有它的“子线程”也会被终止。你想要的是fork()
一个单独的过程来写这个文件。
答案 1 :(得分:0)
不可能。 detach
仅将线程与其父线程分开,因此父线程无需担心清除它。一旦进程终止,所有线程都会死掉。