On Fri, Jun 11, 2010 at 06:19:18PM +0200, pancake wrote:
On 06/11/10 15:21, Moritz Wilhelmy wrote:
unsigned int read(int fd, ref char *buf, unsigned int buf_len, GError **err);
(yeah, thats a silly example, but it allows you to make reads
bigger than 31 bits without having to check for the return
value) In other situations it is good to handle errors in this
way, but thinking on some restrictions allows you to mix error
values and data in the same pipe.
((1<<31)-1) / (1<<30) ≅ 2GB.
I'm not seeing a major problem here. At any rate, the GError
arguments is more about a disdain for errno than anything else.
It's the same reason that Go, Limbo, and Common Lisp support
multiple return values.
--
Kris Maglione
The first symptom of love in a young man is shyness; the first symptom
in a woman, it's boldness.
--Victor Hugo