在I/O安全方面,C标准库非常差.许多函数都有缓冲区溢出(gets
,scanf
),或者如果没有给出正确的参数(scanf
),可能会破坏内存,依此类推.每隔一段时间,我就遇到一位有进取心的黑客,他自己编写了一个缺乏这些缺陷的图书馆.
你见过的这些图书馆有哪些最好的?您是否在生产代码中使用过它们,如果是这样,那么它们不仅仅是业余爱好项目?
我使用GLib库,它有很多很好的标准和非标准功能.
请参阅https://developer.gnome.org/glib/stable/
也许你坠入爱河...... :)
例如:
https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strdup-printf
解释说g_strdup_printf是:
与标准C sprintf()函数类似但更安全,因为它计算所需的最大空间并分配内存来保存结果.