【发布时间】:2011-03-05 20:48:12
【问题描述】:
对于普通 C,是否有任何广泛使用的 I/O 流抽象层?
我所说的 I/O 流抽象层是指至少允许创建自定义读/写函数的任何层。对于 C++,有标准的 iostream 和 boost::iostreams。对于 glibc 用户,可以使用自定义流。如果需要编写可移植的 C 代码,这些将没有任何好处。
最好使用广泛使用或易于嵌入源代码的库,或两者兼而有之。
SDL_RWops 是 SDL 的一个未记录但被广泛使用的特性,zziplib 可以使用它。然而,仅仅为了获得这个特性而向 SDL 添加依赖并没有多大意义。
GLib 包含一个 GIOChannel 抽象,但该库又相当大,他们说“对 Windows 的支持只是部分完成”。
但是,对于解码器、文件格式读取器和信号处理器等小型库,上述内容并不十分令人满意:它们包含许多不必要的内容,并且 LGPL 许可阻止将相关部分嵌入到非 GPL 代码中。
【问题讨论】: