Win32 a Win64 > Obecné
Seekování v rámci disku
pepak:
Zkoušel, nepomohly.
Vrtule:
Když seekuješ v tom disku od konce (poslední parametr SetFilePointer je FILE_END), dáváš tam tu hodnotu posunutí zápornou? Když mrknu na MSDN, tak tam píšou, že u souboru není problém posunout se i za jeho konec, neb se v případě potřeby jeho konec posune. U disků to ale asi půjde těžko; řekl bych, že i samotné posunutí na 0 bajtů od konce už je nevalidní pozice, protože validní pozice budou od nuly do konce - 1.
--- Citace ---It is not an error to set a file pointer to a position beyond the end of the file. The size of the file does not increase until you call the SetEndOfFile, WriteFile, or WriteFileEx function. A write operation increases the size of the file to the file pointer position plus the size of the buffer written, which results in the intervening bytes uninitialized.
--- Konce citace ---
pepak:
--- Citace: Vrtule 02-01-2014, 21:16:29 ---Když seekuješ v tom disku od konce (poslední parametr SetFilePointer je FILE_END), dáváš tam tu hodnotu posunutí zápornou?
--- Konce citace ---
Tradičně se tam dává nula (skok na konec souboru). Ale pro disky nefunguje ani -1.
pf1957:
--- Citace: pepak 03-01-2014, 05:10:48 ---
--- Citace: Vrtule 02-01-2014, 21:16:29 ---Když seekuješ v tom disku od konce (poslední parametr SetFilePointer je FILE_END), dáváš tam tu hodnotu posunutí zápornou?
--- Konce citace ---
Tradičně se tam dává nula (skok na konec souboru). Ale pro disky nefunguje ani -1.
--- Konce citace ---
Ta nula se u souboru dava proto, ze se tim nastavuje pozice pro append tj. pro zapis za konec souboru tj. pozice 1. pomyslneho bytu za koncem souboru.
pepak:
To je jen terminologický rozdíl - já si pod "konec souboru" představuju "místo za posledním bajtem obsahu". Pro samotné téma threadu to není podstatné, protože seek u disků nefunguje (při použití FILE_END) pro žádný offset.
Navigace
[0] Seznam témat
[#] Další strana
[*] Předchozí strana
Přejít na plnou verzi