亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 5291 | 回復(fù): 13
打印 上一主題 下一主題

首次提問(wèn),希望大家?guī)椭?.read與fread問(wèn)題  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-08-18 11:37 |只看該作者 |倒序?yàn)g覽
我想知道這樣一個(gè)問(wèn)題
在LINUX下
fread(cbuf,1,bsize,fp);//cbuf是定義的一個(gè)char cbuf[512]
  在執(zhí)行fread后,我想下次再次執(zhí)行fread時(shí),fp的指針 是已經(jīng)偏移了bsize

我想問(wèn)的是如果用read(fd, cbuf,bsize)后,,當(dāng)下次 再次調(diào)用read時(shí).fd扁移了沒(méi)..這個(gè)問(wèn)題很蠢.我沒(méi)測(cè)試.但我認(rèn)為.應(yīng)該是不變的..因?yàn)檫@里的fd是int


  大家PP..詳細(xì)說(shuō)一下阿

[ 本帖最后由 寂寞游俠 于 2006-8-18 11:48 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2006-08-18 11:44 |只看該作者
當(dāng)然會(huì)變的

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2006-08-18 11:47 |只看該作者
樓上的 意思是

read(fd, cbuf,bsize)后,,當(dāng)下次 再次調(diào)用read時(shí).fd也扁移了?

比如一個(gè)文件里面是20個(gè)字節(jié),我先read讀5個(gè).下次再read..是不是 直接從文件的第6個(gè)字節(jié)開(kāi)始讀?

如果用fread的話..是這樣的..但read不清楚

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2006-08-18 11:55 |只看該作者
再次頂起..

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2006-08-18 12:12 |只看該作者
原帖由 寂寞游俠 于 2006-8-18 11:47 發(fā)表
樓上的 意思是

read(fd, cbuf,bsize)后,,當(dāng)下次 再次調(diào)用read時(shí).fd也扁移了?

比如一個(gè)文件里面是20個(gè)字節(jié),我先read讀5個(gè).下次再read..是不是 直接從文件的第6個(gè)字節(jié)開(kāi)始讀?

如果用fread的話..是這樣的.. ...

是的,你自己寫一個(gè)看看不就行了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2006-08-18 12:25 |只看該作者
在執(zhí)行fread后,我想下次再次執(zhí)行fread時(shí),fp的指針 是已經(jīng)偏移了bsize

兩個(gè)指針之間沒(méi)有任何關(guān)系, fp是一個(gè)FILE結(jié)構(gòu)的指針,他用來(lái)代表一個(gè)已經(jīng)打開(kāi)的文件.

操作系統(tǒng)將文件視為一個(gè)字節(jié)流,如果你要讀取文件的話,就必須有一個(gè)記錄已經(jīng)讀到哪里的變量--用來(lái)跟蹤從那里讀寫,這個(gè)就是你說(shuō)說(shuō)得"文件指針",它和文件結(jié)構(gòu)的指針根本就是兩回事,進(jìn)行文件操作時(shí),修改的是"文件指針'.

read(fd, cbuf,bsize)后,,當(dāng)下次 再次調(diào)用read時(shí).fd也扁移了?
fd就是文件描述符,它是打開(kāi)文件操作后,操作系統(tǒng)用來(lái)標(biāo)識(shí)所打開(kāi)文件的整數(shù),和前面所說(shuō)的一樣,和用于標(biāo)識(shí)文件流的當(dāng)前位置的文件指針是不一樣的.

無(wú)論你怎么針對(duì)文件進(jìn)行操作,你操作的始終是同一個(gè)文件,所以fp和fd根本是不可能變得,變化的只用用以標(biāo)識(shí)字節(jié)流的當(dāng)前位置的"文件指針"

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2006-08-18 12:57 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2006-08-18 12:57 |只看該作者
非常感謝樓上的 回答...

  但經(jīng)本人測(cè)試fread()..在執(zhí)行fread(cbuf,1,bsize,fp);后.再次執(zhí)行Fread時(shí).他確實(shí) 是從文件的bsize處.再讀取bsize個(gè)字節(jié)到cbuf里面


  而read是否也這樣.. 大家PP////
最好說(shuō)下結(jié)果..是否可以...



我看到的一個(gè)write的用法

  1. buffer_p=buffer;
  2. while((bytes_write=write(outfile,buffer_p,bytes_read))!=0)
  3. {
  4. if((bytes_write==-1)&&(errno!=EINTR))break;
  5. else if(bytes_write==bytes_read)break;
  6. else if(bytes_write>;0)
  7. {[color=Red]
  8. buffer_p+=bytes_write;   //很明顯.這里 加butes_write.目的是 為了偏移.說(shuō)明自身不偏移,同理read也應(yīng)該如此.....大家給了 確切的答案![/color]
  9. bytes_read-=bytes_write;
  10. }
  11. }
  12. if(bytes_write==-1)break;
  13. *bytes_copy_p+=bytes_read;
  14. }
復(fù)制代碼



buffer_p+=bytes_write;   //很明顯.這里 加butes_write.目的是 為了偏移.說(shuō)明自身不偏移,同理read也應(yīng)該如此.....大家給個(gè) 確切的答案!]Sample Text

[ 本帖最后由 寂寞游俠 于 2006-8-18 12:59 編輯 ]

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2006-08-18 13:03 |只看該作者
原帖由 coldwarm 于 2006-8-18 12:25 發(fā)表
在執(zhí)行fread后,我想下次再次執(zhí)行fread時(shí),fp的指針 是已經(jīng)偏移了bsize

兩個(gè)指針之間沒(méi)有任何關(guān)系, fp是一個(gè)FILE結(jié)構(gòu)的指針,他用來(lái)代表一個(gè)已經(jīng)打開(kāi)的文件.

操作系統(tǒng)將文件視為一個(gè)字節(jié)流,如果你要讀取文件的 ...



剛剛看明白..

  ....//我想問(wèn)一下執(zhí)行fread和read后..他們的文件指針都會(huì)變化嗎? 我的意思是 如果他們變化的話.在下次執(zhí)行fread 和read時(shí)..他們會(huì)自動(dòng)  從 上次執(zhí)行后.文件指針 偏移后 的位置處  讀取 ...而不需要人工去 作 偏移.


   我的認(rèn)為是fread會(huì)..但read的文件指針不自動(dòng)變化...可以看我上次給出的例子
再次感謝!

[ 本帖最后由 寂寞游俠 于 2006-8-18 13:05 編輯 ]

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2006-08-18 13:54 |只看該作者
LZ 說(shuō)話 有些顛倒呀! 剛才問(wèn)的是  fread VS read   現(xiàn)在又成了 write  VS  fread
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP