看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): VS2008 問題(Question):需要在超過4G bytes 的檔案使用fseek(), 但是fseek似乎不支援超過4G bytes以上的檔案, 想請問有無其他function可以替代fseek(), 謝謝. -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.216.214
LPH66:VS 的話有 _fseeki64 可以用 09/09 00:30
firejox:就用系統函式吧~ 09/09 00:30
LPH66:MSDN: http://tinyurl.com/3drow8x 09/09 00:31
LPH66:不然其實還是可以用 SEEK_SET + 數次 SEEK_CUR 達成 09/09 00:32
WPC001:seek()??? SetFilePointer()??? 09/09 00:32
LPH66:樓上的一個要 fd 一個要 HANDLE 平常只用 FILE* 的用不來吧 09/09 00:34
kakar0to:我有使用_fseeki64 , 但是似乎跟fseek一樣, 不能超過4gb 09/09 00:37
kakar0to:不知道問題出在哪... 09/09 00:37
firejox:你怎麼寫的... 09/09 00:40
loveme00835:版龜2 09/09 00:42
kakar0to:_fseeki64(fp,index*188,SEEK_SET) 09/09 00:42
kakar0to:我是這樣寫的 不知道index*188會超過32 bits 09/09 00:44
kakar0to:index*188會超過32 bits , 也就是超過4g bytes 09/09 00:44
firejox:轉型... 09/09 00:47
loveme00835:先把 index*188 印出來看看吧... 09/09 00:47
james732:(__int64)index*188 這樣? 09/09 00:48
kakar0to:index*188需要轉行才能傳入嗎 這部分我沒有注意到.. 09/09 00:53
kakar0to:那我再試試看 感謝大家... 09/09 00:53
firejox:沒轉型會溢位... 造成錯誤... 09/09 00:54
tropical72:http://codepad.org/AW8Rsm2T 09/09 02:38
angleevil:其實james732已經說出重點.可能要五六年後,家家戶戶都是 09/09 09:21
angleevil:64bit.才沒這問題吧 09/09 09:21