May 7, 2009
很多时候可以通过一道简单的程序可以看得出对编程的理解。
下面贴一道c的面试题,请指出错误点并修改。如果让你重新设计
和实现,你会写成什么样子。
void strcpy(char *p1, char *p2)
{
for (int i = 0; i <= strlen(p1); i++) {
p1[i] = p2[i];
}
}
答案过两天贴吧,不过也是本人个人认为的答案,不一定完美。
thx
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
May 7, 2009
比如我们对以如下程序进行跟踪,现为了说明问题,程序简单了点。
//hello.c
#include <stdio.h>
int main(int argc, char **argv)
{
int i = 0;
int *a;
a[10] = i;
return 0;
}
gcc -g hello.c
./a.out 出现了core.2569
首先我们可以想到的应该是gdb了。
gdb ./a.out core.2569,好问题很容易定位,程序在 a[10] = i;停住了。
跟一下代码不难发现错误。
但有些情况程序可能没有出来core文件,又怎么跟呢?
下面我们讲一下另一种方法:
运行出错后,运行一下dmesg命令。
dmesg
输出最后如下
a.out[3295]: segfault at 0000000000400518 rip 0000000000400485 rsp 00007fff52f02790 error 7
利用addr2line定位程序出错点:
addr2line -e a.out 0000000000400485
/home/pay/test/exception/hello.c:27
好,现在打开hello.c的27行,即 a[10] = i;
现在问题原因已不再难了。
经验是需要一点一滴的积累的。
thx
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
May 7, 2009
记得自已还在学校的时候,曾听一位师兄说:微软永远不会栽员!现在看来,这句话是经不住考验的。
以下是转来的文章。
裁员:微软的挑战真的来了
昨天,微软全球裁员5000人计划的第二阶段正式启动,中国区也在所难免。看来在全球经济低迷,各IT厂商纷纷裁员以降低运营成本之际,微软也不能幸免。所幸的是,微软通过裁员节流的方法还是赢得了业内的乐观评价,称微软此举可以降低微软的运营成本。但笔者看到,这是微软34年来最大规模的裁员,看来微软的挑战真的来了。那么未来的微软应该如何应对艰难的形势无疑是业内和人们关注的焦点。
如何平衡份额、营收和利润的关系。就在微软实施第二阶段裁员之前不久,微软发布了其2009财年第三季度财报,微软的利润同比下滑了32%。业内都知道,微软主要的收入和利润来源是在于它的桌面软件,所以它的业绩的好坏与整个PC市场的表现息息相关。不幸的是,自去年开始PC市场的增长缓慢,尤其主流PC市场的增长。这使得微软不得不将部分重点转移到了新兴的上网本市场。但鉴于上网本的成本和价格要大大低于主流的PC市场产品的价格,所以微软在上网本市场虽然是厚积薄发,截至目前占据了该市场的大部分的份额,但相应的利润受到了比较大的影响。不幸的是,据相关机构和一些主流PC厂商的预测,未来上网本市场有可能仍是PC市场增长最快和拉动PC市场增长的主要动力,那么未来微软仍要面临市场份额、营收和利润的挑战。究竟是要份额、营收还是利润,对微软是个问题。
如何尽快找到互联网业务的感觉。看目前微软的业务,互联网是微软最期望有所斩获,却又是久攻不下的领域。据微软最新的财报显示,微软的在线部门的运营亏损为5.75亿美元,去年同期运营亏损为2.26亿美元。其实,微软的在线业务在过去的4个季度里,已经累计亏损达到了20亿美元,虽然该业务在微软的营收和利润中所占份额较小,但也从一个侧面反映出,微软在互联网领域与它的主要对手Google相比,远远没有找到其在桌面软件市场的感觉。而因当初雅虎的固执而错失了与Google一搏的大好时机之后,即使现在微软CEO鲍尔默有意并购雅虎,而雅虎又愿意出售的话,其效力也已经大减。据美国互联网流量监测机构尼尔森在线(Nielsen Online)此前公布的数据显示,今年3月Google在美国搜索市场的份额为64.2%,雅虎为15.8%,微软为10.3%。当月Google搜索总量为61亿次,比去年同期增长27.6%。雅虎当月搜索总量为15亿次,同比增长1.7%。微软当月搜索总量为9.82亿次,同比增长仅0.3%。由此可见,就在这段时间里,对手Google再次将自己和微软及雅虎的距离拉大。看来微软只有只身与Google在互联网领域打拼了,可微软在互联网领域的感觉在哪里呢?或者什么业务是微软切入互联网的最佳点呢?不但业内困惑,恐怕连微软自己也比较迷茫。
如何应对企业级市场的变化。在经济低迷之时,企业级的用户更加在意成本。这时候,云计算技术提供的服务无疑受到了他们的青睐。最典型的例子是云计算企业Salesforce.com,在其他各IT企业利润多数下滑的情况下,其最新财季的利润逆势增长近一倍,并且由“Gartner CRM客户服务中心魔力象限”列入“领导者象限”。因为该厂商所提供的解决方案,既能够加强客户忠诚度,又能同时降低成本。相比之下,虽然为企业IT运营提供所需设备的服务器和工具部门第三季销售收入从32亿美元提高至34亿美元。但面临未来云计算的发展趋势,微软面对企业级用户也要面临战略转型的问题,为此微软在去年已经发布了自己的云计算平台Azure。通过该平台,软件开发者能够编写与微软产品兼容的软件,并通过微软服务器进行存储和访问;同时,用户也可以通过Azure平台访问数据库、邮件服务器等微软应用程序。但微软在此领域不但要面临Google、亚马逊和Salesforce.com这些市场先行者的挑战,还要权衡其与自己的传统软件商业模式间可能造成的相互蚕食市场份额的矛盾。更关键的是,作为刚刚起步的Azure云计算平台,短期内可能不会给微软带来可观的营收。
通过微软34年最大规模的裁员,预示着微软的挑战真的来了。那么Windows7的即将登场和明年新版Office的发布可以遏制微软的颓势吗?中国有句俗话:开源节流。既然已经节流了,那微软面临的就是如何开源了,毕竟开源才是获取营收和利润的关键。
thx
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
May 7, 2009
自已喜欢武侠片,大概得出的结论是少林武功天下第一。少林武功注重的是对武学的内在修养的提高,而不拘泥于具体的外在的物。比如有些门派以抢法名扬天下,但如果只局限于抢能刺到什么地方,那么他永远还是在武学的初级阶段。因此专不是万能的,但通同样也离不开专,因此没有对某一方面的深认识,那么通而平庸,再不出奇了。
其实其它事物也亦如此:做人、做事。做人不能只看到自已,自已的事,自已的利益,这样永远也做好一个最好的自已。人的生存是有环境的,在兼顾自已方面的同时,也应根据环境去适应,去协调。
在技术方也也亦如此,有些人技术很丰富,但如果经过一些规范的约束,然后再综合自已丰富的经验,许多事会做的更好。也有些人某一方面特别突出,规范性也强,但缺了通,因此有时候很容易出来只见草木不见泰山的情况。
对产品来讲同样普遍存在。
thx
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!