Win32 a Win64 > Obecné

Seekování v rámci disku

<< < (2/3) > >>

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