[Python-Dev] fileobj.read(float): warning or error?
Jesus Cea
jcea at jcea.es
Tue Sep 2 20:31:44 CEST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Isaac Morland wrote:
> On Tue, 2 Sep 2008, Jesus Cea wrote:
>
>>> Indeed. read(0) is quite often generated as an edge case when one is
>>> computing buffer sizes, and returning an empty string is most
>>> definitely the right thing to do here (otherwise some application code
>>> becomes more complex by having to avoid calling read(0) at all).
>>
>> How do you differenciate between that empty string (when doing
>> "read(0)"), from EOF (that is signaled by an empty string)?.
>
> Why would you expect a difference between reading 0 bytes at EOF and
> reading 0 bytes anywhere else? If you read(4) when at offset 996 in a
> 1000-byte file I doubt you expect any special notification that you are
> now at EOF.
My message was an answer to Guido one, saying that some programs
calculate the read len substracting buffer lengths, so, then can try to
read 0 bytes. Guido argues that returning a empty string is the way to go.
My point is: we are simplifying the program considering "0" a valid len
counter, but we complicates it because now the code can't consider "" =
EOF if it actually asked for 0 bytes.
> The Unix read() system call doesn't treat EOF as special other than it
> won't return bytes from "beyond" EOF and therefore even when reading a
> regular file could return fewer (including 0) bytes than asked for in
> the call.
I always consider ""==EOF. I thought that was correct for non-blocking
sockets. Am I wrong?.
- --
Jesus Cea Avion _/_/ _/_/_/ _/_/_/
jcea at jcea.es - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/
jabber / xmpp:jcea at jabber.org _/_/ _/_/ _/_/_/_/_/
. _/_/ _/_/ _/_/ _/_/ _/_/
"Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/
"My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iQCVAwUBSL2GjZlgi5GaxT1NAQLniwP/SwdmA929j4oPplhtkVU82TYFoyevP/E2
QsHvCZ18CWYSa5LO00Vsd0Uo8ZQeqV8Gx6o2pG2ke66qI7c7pjTQcSO28Z3ztlVW
YZVbc46WGozjuiHh2tLVSckI4GyZJzs7+Btho2klE2dNygxWVEpT5Ueu+o2CK0Pl
Onf7jG4L+h0=
=YHQ/
-----END PGP SIGNATURE-----
More information about the Python-Dev
mailing list