【发布时间】:2011-01-02 20:21:13
【问题描述】:
我正在使用纯 C (c99) 语言开始一个新项目,该项目主要使用文本。由于外部项目限制,此代码必须非常简单和紧凑,由一个源代码文件组成,没有外部依赖项或库,除了 libc 和类似的普遍存在的系统库。
了解这些之后,有哪些最佳实践、陷阱、技巧或其他技术可以帮助项目的字符串处理更加健壮和安全?
【问题讨论】:
-
首先使用 C 算作陷阱吗?
/* ouch, stop! just kidding! */ -
@anatolyg:为什么有人要使用宽字符?呃。
-
这个问题太棒了……很多错误答案都是基于对显然“安全”解决方案的误解。哇,C 让安全的字符串处理真的很难。
-
@Konrad:唯一让事情变得困难的是大量的错误信息和不良例子。
-
@R..:我认为 Konrad 的意思是“安全”字符串处理的做法在 C 中并不明显。当然,如果你知道怎么做,一切都很容易。但是 C 是一种“足够的绳索”语言,几乎没有方向和很多不好的先例。这使得做“正确”的事情变得困难。
标签: c security string robustness