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函数自己用的话当然是越安全最好,最好所有的入参都检查一边,

但是作为库函数可能就要考虑效率问题了,对于参数的检查需要由编程者自己完成,库函数仅仅假设所有的入参均是合法的。

不知道我理解的对不对。

posted @ 2012-12-13 21:43  Stevens  阅读(122)  评论(0)    收藏  举报