髪を引っ張らずに多言語でQFile
ファイルを開く必要があります。QString
しかし、std::stream
API を介してこれらのファイルのデータを管理する必要もあります。多くの人が示唆するように、私はかつてstd::fstream stdFile(fdopen(qtFile.handle(), mode));
そうしていました。
ただし、繰り返し操作を行うと問題が発生しました。一定量のファイル処理の後、アプリケーションがクラッシュします。
次のコードでクラッシュを再現できます。
int fileOperationCount = 0;
while (true)
{
QFile qtFile("plop.txt");
qtFile.open(QIODevice::ReadOnly);
std::ifstream file = std::ifstream(fdopen(qtFile.handle(), "rb"));
if (!file.good())
throw std::exception();
file.seekg(0, file.beg);
if (!file.good())
throw std::exception(); //Will ALWAYS trigger at fileOperationCount = 509
qtFile.close();
fileOperationCount++;
}
509 号機はseekg
. また、何百もの異なるファイルを操作した場合にも発生します。509回目にファイルを読み込もうとすると、それでもクラッシュします。
私が間違っていることは何ですか?