尤其是塊數是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
不錯。希望盡快能看到下一篇文章。
我用了很久,挺不錯的。過期了其實也可以用的,啟動之前,改一下系統的時間。呵呵