Hi, 2011/5/3 Kay Sievers <[email protected]> > > On Mon, May 2, 2011 at 05:18, [email protected] <[email protected]> wrote: > > loop_read/write will try to fill/read 'nbytes' of caller supplying buffer. > > This argument is currently of type size_t, which is always true > > for loop quit condition "while (nbytes > 0)", hence we change it to > > type ssize_t here. > > Where would that be useful? It's the size of the buffer supplied to > the function, just like read() itself has. Note "while(nbytes > 0)" is equal to "while(true)", if the supplying buffer is smaller than contents of a file, read syscall may overwrite memory after 'buf', or return with errno EFAULT.
> > > This also helps to detect passed-in 'nbytes' of value -1 > > for example. > > Detect what that way, a negative sizeof()? This 'nbytes' maybe a variable, and happens to be -1? Also, it is symmetric if the range of return value(number of bytes read) is equal to the range of 'nbytes'. -- Regards, - cee1 _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
