Message61060
| Author |
jurojin |
| Recipients |
| Date |
2007年01月16日.15:33:58 |
| SpamBayes Score |
| Marked as misclassified |
| Message-id |
| In-reply-to |
| Content |
The other night i was watching a google techtalk about python 3000 and
Guido mentioned some problems with the C standard io library.
In particular he highlighted an issue with switching between reading
and writing without flushing and the fact that it caused serious
errors. Not that i dont think its a good idea to write a new io
library, but I wondered if it was the same problem ive encounted.
It only happens on windows that i know off, but the fix is simple...
Assuming you have a hanlde to the file called "Handle" and a Flush()
method, the following logic for read and write will allow you to
detect and prevent the problem.
Add this to the Read() method before reading takes place:
if ( Handle && (Handle->_flag & _IORW) && (Handle->_flag & (_IOREAD |
_IOWRT)) == _IOWRT )
{
Flush();
Handle->_flag |= _IOREAD;
}
Add this to the Write() method before writing takes place:
if ( Handle && (Handle->_flag & _IORW) && (Handle->_flag & (_IOREAD |
_IOWRT)) == _IOREAD )
{
Flush();
Handle->_flag |= _IOWRT;
}
Emerson |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2008年01月20日 09:59:12 | admin | link | issue1636874 messages |
| 2008年01月20日 09:59:12 | admin | create |
|