This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eggy
Recipients eggy
Date 2008-12-07.19:06:29
SpamBayes Score 2.6324198e-08
Marked as misclassified No
Message-id <1228676791.35.0.647481208562.issue4579@psf.upfronthosting.co.za>
In-reply-to
Content
>>> f = os.fdopen(os.open('spam!', os.O_TRUNC|os.O_CREAT|os.O_RDWR), 'w')
>>> f.read()
''
>>> f.readline()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 9] Bad file descriptor
>>> f.write("spamspamhihi")
>>> f.read()
''
>>> f.seek(0)
>>> f.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 9] Bad file descriptor

This is very strange behaviour. First, .read() succeeds, and .readline()
fails, but after writing and seeking, .read() also fails.

In python3, both read and readline fail, but with different exceptions:

>>> f = os.fdopen(os.open('spam!', os.O_TRUNC|os.O_CREAT|os.O_RDWR), 'w')
>>> f.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mark/source/code/_python-3.0/Lib/io.py", line 1718, in read
    decoder.decode(self.buffer.read(), final=True))
  File "/home/mark/source/code/_python-3.0/Lib/io.py", line 668, in read
    self._unsupported("read")
  File "/home/mark/source/code/_python-3.0/Lib/io.py", line 327, in
_unsupported
    (self.__class__.__name__, name))
io.UnsupportedOperation: BufferedWriter.read() not supported
>>> f.readline()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mark/source/code/_python-3.0/Lib/io.py", line 1807, in
readline
    while self._read_chunk():
  File "/home/mark/source/code/_python-3.0/Lib/io.py", line 1554, in
_read_chunk
    input_chunk = self.buffer.read1(self._CHUNK_SIZE)
AttributeError: 'BufferedWriter' object has no attribute 'read1'

In my opinion, all operations, in all python versions, should fail like
readline in the first example: IOError: [Errno 9] Bad file descriptor
History
Date User Action Args
2008-12-07 19:06:32eggysetrecipients: + eggy
2008-12-07 19:06:31eggysetmessageid: <1228676791.35.0.647481208562.issue4579@psf.upfronthosting.co.za>
2008-12-07 19:06:30eggylinkissue4579 messages
2008-12-07 19:06:29eggycreate