www.digitalmars.com         C & C++   DMDScript  

D - readBlock/read(ubyte[]) should probably return int not uint

readBlock and read(ubyte[]) for class Stream returns uint. Under linux 
it uses:

size = std.c.linux.linux.read(hFile, buffer, size);

Where read on POSIX systems returns -1 on error. So you would never know 
whether you had an error during reading. It would return 4294967295, 
which, granted is a pretty big buffer. :-)

But much code for linux uses:
if(read(blah) < 0) {  perror("read"); }

It would be kinda hacky (when porting C code to D) if you had to say:
if(mystream.read(blah) == uint.max) { error; }

-Damon-
Jan 16 2004