分类: LINUX
2011-04-27 17:43:25
最近看模块代码,发现字符串的拷贝都用的strlcpy,所以就查了查用strlcpy取代strncpy的原因。 详细内容请看: 简单总结几点: 例1: 在例1中只会把str数组填满,但这个字符串却没有'\0'的结束符。 例2: 在例2中,15远远大于了字符串"sample"的长度,这时strncpy要在剩下的部分补充'\0'。首先说这样会影响效率,其次对于static或者calloc这样已经初始化的数组根本不需要填写'\0'。 例3: 2. 而strlcpy可以自动处理末尾'\0'的问题 size_t strlcpy(char *dst, const char *src, size_t size); |