Hello all,
I'm reading a file synchronously and non-overlapped using ReadFile. I'm
also reading the file blockwise, and do not want to deal with an empty block when the filesize turns out to be an exact multiple of the blocksize (every block must contain data).
IOW, how do I detect the EOF /without/ trying to use ReadFile and getting zero bytes back.
I've tried a ReadFile of zero bytes, but that doesn't quite work. :-\
I can ofcourse get and store the filesize beforehand and for each block subtract the ammount of bytes read, but that means I have duplicate data :
a file that ends and a counter that /should/ than be zero. Which I would rather not have.
I've ofcourse already DDGed the intarwebz for a hint, but have had not luck.
Regards,
Rudy Wieser
You can see MSDN : https://docs.microsoft.com/en-us/windows/win32/fileio/testing-for-the-end-of-a-file
Christian,
You can see MSDN :
https://docs.microsoft.com/en-us/windows/win32/fileio/testing-for-the-end-of-a-file
Yeah, I found that too. The problem with it is that you *have to read data* to be able to detect there isn't any more of it.
IOW, if I want to mark the current full block of data as the last one I must have already read (some of) the next block able to determine the EOF status. And thats something I'd rather not do.
Regards,
Rudy Wieser
Maybe use streams and the "<<", ">>" operators.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 379 |
Nodes: | 16 (2 / 14) |
Uptime: | 42:12:59 |
Calls: | 8,141 |
Calls today: | 4 |
Files: | 13,085 |
Messages: | 5,857,793 |