linux代码里的strcpy函数为什么和林锐博士将的不一样
LXR上查找到是
98char *strcpy(char *dest, const char *src)
99{
100 char *tmp = dest;
101
102 while ((*dest++ = *src++) != '\0')
103 /* nothing */;
104 return tmp;
105}
99行的位置缺少, if ((dest==NULL)||(src==NULL)) 这样的检验,这能说是linux代码内的一个小失误吗?
我 个人感觉这应该是一个编程哲学的问题,如果我们自己写APi函数自己用的话当然是越安全最好,最好所有的入参都检查一边,
但是作为库函数可能就要考虑效率问题了,对于参数的检查需要由编程者自己完成,库函数仅仅假设所有的入参均是合法的。
不知道我理解的对不对。

浙公网安备 33010602011771号