尤其是块数是N,而不是1的情况下,这样写更有意义
while (fread(buffer, 16, N, file) ==N
最后结束的时候,返回的块数大多数情况下会小于N,这个时候,也有可能是因为出错,没有读完N就出来了,或者到文件尾,剩下的块小于N,也跑出来。
后面要检测不同结果,因为最终循环结束,未必是文件读完了。
				
		 
	
		
			
			@barry
sorry,
while (fread(buffer, 16, 1, file) !=1
应该还是
while (fread(buffer, 16, 1, file) ==1
只是最后结束循环次数未必一定是2048
因为即使等于1,也可能是出错的情况之一,这时候循环不会停止。
如果要求出错马上退出,只能在循环中判断。
				
		 
	
		
			
			上面结论是对的,但下面的代码也是有问题的,
int loop = 0;
while (fread(buffer, 16, 1, file) == 1) {
    loop++;
    ......
}
printf("%d\n", loop); // 2048
应该改成:
int loop = 0;
while (fread(buffer, 16, 1, file) !=1) {
    loop++;
    ......
}
printf("%d\n", loop); // 2048
if(feof(file)==EOF)
    ....
if(ferror(file))
   ....
				
		 
	
		
			re: 架构人生 barry 2009-11-25 20:58   
			@w
呵呵,您说的很有道理,软件行业确实工程意识比较低。软件工程诞生的年代也不是很久,现在随着产业信息化的规模越来越大,传统制造业的工程理论也可以应用在软件领域,特别是高科技制造业,相信这是一个趋势。
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-24 21:10   
			面向服务的下面一层也许就是面向模块,面向模块的下面也许有面向组件,面向组件的下层可能是面向对象,面向对象的下面可能为面向过程,面向过程的更下层也许就是面向机器。它们不一定是替代关系,只是你在开发的过程中面向的粒度和解决问题的角度不一样罢。
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-24 21:00   
			"管理的目标即通过合理有效的编排这些活动以期以最少的成本达到最大的收益。"
这是你说的。从你的目标上来看,面向组件替代面向对象为什么不可以?
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-24 19:53   
			to ronghao:
愿闻其详。
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-23 22:38   
			呵呵,还是漏了点:面向机器->面向过程->面向对象->面向组件->面向模块->面向服务。 
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-23 22:35   
			漏了点东西,应该是:
面向机器->面向对象->面向模块->面向服务。
				
		 
	
		
			re: 资源模式唱罢、控制模式登场 barry 2009-11-23 22:12   
			面向机器,面向过程,面向对象,面向服务是一个循环的过程。没有优劣之分,只是发展的阶段不同。
				
		 
	
		
			re: 大话泼猴 barry 2009-11-23 22:02   
			不仅是猴头,其实每个人都会经历一个社会化的过程,大家看到这难道没有什么心得?呵呵。
				
		 
	
		
			re: 架构人生 barry 2009-11-23 21:56   
			to 大卫:  因为你快乐,所以我才快乐,独乐乐,不如众乐乐,大家快乐,才是真正的快乐。这是我的快乐,希望也是你的快乐,呵呵。 
				
		 
	
		
			re: Java做的酒店管理系统(C/S)源码 barry 2008-08-13 17:22   
			您好, 也請您寄一份給我, 謝謝!!
Barry6449@hotmail.com
				
		 
	
		
			
			iiiiiiiiiiii wany it............
				
		 
	
		
	
		
			re: 从看设计过程 barry 2007-05-25 08:56   
			图画得有意思,用什么工具画的?
				
		 
	
		
	
		
	
		
	
		
	
		
			re: [预告]《Ajax开发详解》抓紧编撰中 barry 2006-01-12 17:08   
			lz辛苦了,期待中...
				
		 
	
		
			
			呵呵。我也刚刚想到这个问题。
查看了一下spring doc。
如果在代码中直接使用了DataSource.getConnetction()的方式(比如遗留代码),还可以通过设置一个TransactionAwareDataSourceProxy来代理DataSource。
				
		 
	
		
			
			的确是这样。国内软件在Mac平台的很少,应用软件还情有可原,硬件没有驱动的话就严重了。我就遇到过一次,老板的Apple本本,因为打印机没有驱动,根本使用不了。
				
		 
	
		
			re: 软件架构设计思考之一 barry 2005-09-26 13:50   
			不错。希望尽快能看到下一篇文章。
				
		 
	
		
			
			我用了很久,挺不错的。过期了其实也可以用的,启动之前,改一下系统的时间。呵呵