-
Notifications
You must be signed in to change notification settings - Fork 1
Version History zh CN
本页面记录 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 支持 |
发布日期:
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。
发布日期:
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 或更高版本。
发布日期:
2026-05-01
标签:
V1.1.0
功能与安全更新。
- 添加获取版本号的函数。
- 添加内部版本字符串。
- 添加安全相关改进。
- 添加对
cppfs在文件流已经打开时重复打开的保护。 - 将版本字符串更新为
1.1.0。
该版本引入了:
cfs::getversion()该函数返回 cfstream 版本字符串。
示例:
std::cout << cfs::getversion() << std::endl;该版本在打开独立 C++ 文件流前添加了检查。
如果 cfs::cin 或 cfs::cout 已经打开,cppfs() 会输出错误信息:
Error-from-cfs Already open cppfs,please close first!
在该版本中,cfstream 仍然是仅 C++ 头文件,并且仍然使用 cfs.h。
标准流恢复仍然仅支持 Windows。
发布日期:
2026-04-27
标签:
V1.0.0
初始版本。
第一个版本提供了一个轻量级的 C++ 头文件,用于辅助文件输入输出。
它包含:
cfs::cfs()cfs::cppfs()cfs::closecfs()cfs::closecppfs()cfs::cincfs::cout
第一个版本使用:
cfs.h
作为 C++ 头文件。
第一个版本在标准流恢复方面仅支持 Windows。
它使用以下设备恢复标准流:
CON