免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: HopeCao
打印 上一主题 下一主题

出现频率最高的笔试题strcpy写法 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-09-27 12:14 |只看该作者
char * __cdecl strcpy(char * dst, const char * src)
{
        char * cp = dst;

        while( *cp++ = *src++ )
                ;               /* Copy src over dst */

        return( dst );
}

from strcat 的代码

微软的代码。 的确是的 strcpy 根本没有考虑异常, 错误,失败的情况。

套用这里某位老兄原来的说法 就是让他直接崩溃,然后找到bug.


但是应该说 你如果面试敢写 上面的代码 就意味着你面试的结束。

论坛徽章:
0
22 [报告]
发表于 2008-09-27 12:26 |只看该作者
两字符串重叠的话,用你这个函数的程序就直接崩溃了

论坛徽章:
0
23 [报告]
发表于 2008-09-27 12:32 |只看该作者
原帖由 benjiam 于 2008-9-27 12:14 发表
from strcat 的代码

微软的代码。 的确是的 strcpy 根本没有考虑异常, 错误,失败的情况。

套用这里某位老兄原来的说法 就是让他直接崩溃,然后找到bug.


但是应该说 你如果面试敢写 上面的代码 就意味着你面试的结束。


面试技术题的至少是公司里技术上有点地位的人,应该知道这样的正确写法的概率还是很大的。到底这是比较基础的东西,我觉得我接触过的技术好点的人大多明白,特别是搞过linux源代码的。

但是如果面试官真的就像那写一楼那个例子的人,那直接回家也罢。如果进了的话,跟别人还好,有可能就跟了这种人干活那就太危险了

论坛徽章:
0
24 [报告]
发表于 2008-09-27 13:12 |只看该作者
不应该在strcpy这样的底层的广泛使用的FUNCTION中设置多的检查.

比如GCC 库的strcpy没有参数的检查.

为什么? 因为影响速度和效率. 不检查,让程序CRASH掉, 使用者自己找自己的错误.

论坛徽章:
0
25 [报告]
发表于 2008-09-27 13:34 |只看该作者
原帖由 思一克 于 2008-9-27 13:12 发表
不应该在strcpy这样的底层的广泛使用的FUNCTION中设置多的检查.

比如GCC 库的strcpy没有参数的检查.

为什么? 因为影响速度和效率. 不检查,让程序CRASH掉, 使用者自己找自己的错误.

你已經深受unix的毒害了

论坛徽章:
0
26 [报告]
发表于 2008-09-27 13:39 |只看该作者
是的.

程序如果有错误, 最好的结果应该是CRASH掉.

最坏的结果是程序继续运行.

因为,CRASH掉, 业务停止, 找错误,然后恢复工作.
继续运行, 如果是银行业务, 你取存一千, 给你帐户1000万. 公安就抓你,判刑的. 有例子.


原帖由 fera 于 2008-9-27 13:34 发表

你已經深受unix的毒害了

论坛徽章:
0
27 [报告]
发表于 2008-09-27 13:41 |只看该作者
原帖由 思一克 于 2008-9-27 13:12 发表
不应该在strcpy这样的底层的广泛使用的FUNCTION中设置多的检查.

比如GCC 库的strcpy没有参数的检查.

为什么? 因为影响速度和效率. 不检查,让程序CRASH掉, 使用者自己找自己的错误.



又回到当时那个话题, 是让他崩溃掉还是让他返回错误。

如果外部调用的错误,内核可以用崩溃来让外部知道。那么内核的bug,它用什么方式让人知道呢?

论坛徽章:
0
28 [报告]
发表于 2008-09-27 13:42 |只看该作者
内核的bug, 更应该立即DOWN掉, 同时尽所能写些信息出来.

论坛徽章:
0
29 [报告]
发表于 2008-09-27 13:45 |只看该作者
原帖由 思一克 于 2008-9-27 13:39 发表
是的.

程序如果有错误, 最好的结果应该是CRASH掉.

最坏的结果是程序继续运行.

因为,CRASH掉, 业务停止, 找错误,然后恢复工作.
继续运行, 如果是银行业务, 你取存一千, 给你帐户1000万. 公安就抓你,判 ...



毫无意义的例子, 神州7号,运行过程中发现有问题,不是返回错误,启动应急方案。 而是让他crash 掉,让他直接掉下来。

返回错误 也是可以找到错误 恢复工作的。

论坛徽章:
0
30 [报告]
发表于 2008-09-27 13:49 |只看该作者
可是大部分应用不是这种.

飞机上的系统还有备份的手工操作系统.
以免错误的程序将飞机自己CRASH掉.

原帖由 benjiam 于 2008-9-27 13:45 发表



毫无意义的例子, 神州7号,运行过程中发现有问题,不是返回错误,启动应急方案。 而是让他crash 掉,让他直接掉下来。

返回错误 也是可以找到错误 恢复工作的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP