Skip to content

Version History zh CN

weigao edited this page Jun 21, 2026 · 1 revision

版本历史

本页面记录 cfstream 的版本历史。

它总结了从 1.0.0 到当前版本的主要变化。

最新发布包请查看仓库 Releases 页面:

当前版本

当前版本:

1.3.0

推荐版本

对于大多数用户,推荐版本是:

V1.3.0

如果你的项目必须使用早于 C99 的 C 标准,推荐版本是:

V1.2.0

版本 1.3.0 推荐给所有用户,尤其是需要 macOS、Linux 或多源文件项目支持的用户。

版本概览

版本 发布日期 主要变化
1.0.0 2026-04-27 初始版本;仅 C++ 头文件;仅支持 Windows 标准流恢复
1.1.0 2026-05-01 添加版本查询并改进安全相关行为
1.2.0 2026-05-17 添加 C 支持;分离 C++ 与 C 头文件;添加 NULL 选择性重定向支持
1.3.0 2026-06-19 添加跨平台控制台恢复;函数改为 static inline;添加 C99 检查和 C++ nullptr 支持

V1.3.0

发布日期:

2026-06-19

标签:

V1.3.0

发布类型

跨平台与重大安全更新。

该版本推荐所有用户使用。

主要变化

对于 C 和 C++ 两个版本:

  • 添加跨平台标准流恢复支持。
  • 将仅 Windows 的控制台恢复改为根据平台选择控制台设备。
  • 将函数改为 static inline,提高多源文件项目中的头文件安全性。
  • 保持每个源文件中的文件流对象相互独立。

对于 C++ 版本 cfs.hpp

  • 在 C++11 及更高版本中,添加对向 cfs::cfs() 传入 nullptr 的支持。
  • 保持对 NULL 的完整兼容。
  • 添加内部 CFS_NULLPTR 兼容宏。
  • 添加平台相关的控制台设备宏。
  • 将版本字符串更新为 1.3.0

对于 C 版本 cfs.h

  • 添加 C99 或更高版本标准检查。
  • 添加平台相关的控制台设备宏。
  • 将公开函数改为 static inline
  • 将版本字符串更新为 1.3.0

平台行为

1.3.0 开始,closecfs()cfs::closecfs() 会根据平台使用不同的控制台设备。

平台 控制台设备
Windows CON
Linux / macOS / 其他类 Unix 系统 /dev/tty

这使标准流恢复可以在 Windows 之外工作,包括 macOS 和 Linux 上的普通终端环境。

注意事项

跨平台标准流恢复功能用于恢复系统终端。

它应该能在普通终端环境中工作,包括 CLion Terminal 等终端。

某些由 IDE 管理的运行控制台可能不提供真实终端设备。在这些环境中,流恢复可能无法按预期工作。

由于早于 C99 的 C 标准现在已经很少使用,cfs.h 在 C 模式下使用低于 C99 的标准时会停止编译。

如果你需要使用早于 C99 的 C 标准,请使用较旧的 cfstream 版本,例如 V1.2.0

V1.2.0

发布日期:

2026-05-17

标签:

V1.2.0

发布类型

重大更新。

该版本引入了官方 C 语言支持。

主要变化

  • 添加 C 语言支持。
  • 将原来的 C++ 头文件扩展名从 .h 改为 .hpp
  • 为 C++ 项目添加 cfs.hpp
  • 为 C 项目添加 cfs.h
  • 添加对向 cfs() / cfs::cfs() 传入 NULL 的支持,用于跳过某个流的重定向。
  • 改进语言和版本检测。
  • 改进安全相关行为。

头文件变化

1.2.0 之前,cfstream 使用:

cfs.h

作为 C++ 头文件。

1.2.0 开始,头文件被分离:

头文件 语言 用途
cfs.hpp C++ C++ 接口
cfs.h C C 接口

选择性重定向

1.2.0 开始,用户可以传入 NULL 来跳过某一侧的重定向。

示例:

cfs::cfs("test.in", NULL);

这表示只重定向输入。

cfs::cfs(NULL, "test.out");

这表示只重定向输出。

C 版本中也可以使用同样的思路:

cfs("test.in", NULL);
cfs(NULL, "test.out");

注意事项

该版本仍然使用 Windows 控制台设备 CON 来恢复标准流。

如果需要在 macOS 和 Linux 上恢复标准流,请使用 V1.3.0 或更高版本。

V1.1.0

发布日期:

2026-05-01

标签:

V1.1.0

发布类型

功能与安全更新。

主要变化

  • 添加获取版本号的函数。
  • 添加内部版本字符串。
  • 添加安全相关改进。
  • 添加对 cppfs 在文件流已经打开时重复打开的保护。
  • 将版本字符串更新为 1.1.0

添加版本查询

该版本引入了:

cfs::getversion()

该函数返回 cfstream 版本字符串。

示例:

std::cout << cfs::getversion() << std::endl;

添加重复打开保护

该版本在打开独立 C++ 文件流前添加了检查。

如果 cfs::cincfs::cout 已经打开,cppfs() 会输出错误信息:

Error-from-cfs Already open cppfs,please close first!

注意事项

在该版本中,cfstream 仍然是仅 C++ 头文件,并且仍然使用 cfs.h

标准流恢复仍然仅支持 Windows。

V1.0.0

发布日期:

2026-04-27

标签:

V1.0.0

发布类型

初始版本。

主要功能

第一个版本提供了一个轻量级的 C++ 头文件,用于辅助文件输入输出。

它包含:

  • cfs::cfs()
  • cfs::cppfs()
  • cfs::closecfs()
  • cfs::closecppfs()
  • cfs::cin
  • cfs::cout

头文件

第一个版本使用:

cfs.h

作为 C++ 头文件。

平台支持

第一个版本在标准流恢复方面仅支持 Windows。

它使用以下设备恢复标准流:

CON

另请参阅

Clone this wiki locally