C语言 FILE写文件中途断开磁盘驱动器测试(2)

note

  • 本次测试基于前文
  • 本次测试内容: 当写文件中途, 取下U盘后, 此时, 执行关闭文件, 观察能否正确关闭文件

结论

  • 当写文件中途, 取下U盘后, 此时, 执行关闭文件, 能正确关闭文件

测试代码

void call_write(const std::string& file_name)
{

	FILE* pfile = nullptr;
	errno_t ret = fopen_s(&pfile, file_name.c_str(), "w");

	if (0 != ret)
	{
		std::cout << "\n 11111 ret=" << ret << "\n";
		return ;
	}

	const char parr[]{ "1234567890\n" };
	const size_t len = strlen(parr);

	for (int index = 0; index < 10; ++index)
	{
		if (len != fwrite(parr, 1, len, pfile))
		{
			std::cout << "22222, index << " << index << ", error_id=" << ferror(pfile) << "\n";
			break;
		}
		else
		{
			std::cout << "index=" << index << " succeeded to call fwrite, ";
		}

		int ret = fflush(pfile);
		std::cout << ", fflush_ret =" << ret << "\n";

		std::this_thread::sleep_for(std::chrono::seconds(2));
	}

	int closeResult = fclose(pfile);

	std::cout << "\n ====================333333==== close_ret=" << closeResult << "\n\n";
	pfile = nullptr;
}

输出结果

  • 如图中 红框所示, 正确关闭文件流。
posted @ 2022-07-28 12:34  mohist  阅读(34)  评论(0编辑  收藏  举报