Message86848
Created an mmap for a file in update mode, seek to end of file, and
invoke write_byte. The file is not updated (as expected), but did not
get any error indicating the write was out of bounds, and when I invoke
tell(), it reports a position that is out of bounds. I check size(), and
it still reports the correct size (less than the value reported by
tell()). If I do seek(0, os.SEEK_END), it correctly returns to the end
of the map, instead of this bizarre no-mans land beyond the end.
This is on Windows XP.
Here's an example from the shell. (note that write() works as I would
expect, it raises an exception and doesn't modify the position):
>>> map.tell()
0
>>> map.size()
8
>>> map.seek(0, os.SEEK_END)
>>> map.tell()
8
>>> map.write("foo")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: data out of range
>>> map.tell()
8
>>> map.size()
8
>>> map.write_byte('x')
>>> map.tell()
9
>>> map.size()
8
>>> print "WTF?"
WTF?
>>> map.write_byte('x')
>>> map.tell()
10
>>> map.size()
8
>>> map.flush()
1
>>> map.size()
8
>>> map.tell()
10
>>> map.seek(0, os.SEEK_END)
>>> map.tell()
8
>>> map.size()
8
>>> |
|
Date |
User |
Action |
Args |
2009-04-30 18:28:20 | bmearns | set | recipients:
+ bmearns |
2009-04-30 18:28:20 | bmearns | set | messageid: <1241116100.06.0.276322653454.issue5887@psf.upfronthosting.co.za> |
2009-04-30 18:28:18 | bmearns | link | issue5887 messages |
2009-04-30 18:28:18 | bmearns | create | |
|