This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix BZ # 2074


On 04/11/2012 06:44 PM, Roland McGrath wrote:
That does seem to make the documentation consistent with the code.
The comment on __io_write_fn in libio/libio.h needs to be changed too.

Since that's the interface, it's unfortunate that we use ssize_t in the
type signatures.  They very much look like they are intended to be exactly
the interfaces of read and write (with the int fd replaced with the void
*cookie).  In fact, I'm quite sure that was my original intention in the
pre-libio stdio implementation.  If there's any way we can compatibly
recover the situation so the functions have the more-obvious interfaces,
that seems like the best thing to me.  But even in the interface described
by the __io_write_fn comment is not quite analogous to write's interface,
since write can return short counts.

Roland, what do you propose doing? Changing the code is out of my scope for now.


I can add the patch together with the following change for libio.h - or we can leave the bug open and Ican add your ocmment above to it...

Andreas

* libio/libio.h (__io_write_fn): Update comment.

diff --git a/libio/libio.h b/libio/libio.h
index 702a666..3b91602 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -346,7 +346,7 @@ extern _IO_FILE *_IO_stderr attribute_hidden;
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);


 /* Write N bytes pointed to by BUF to COOKIE.  Write all N bytes
-   unless there is an error.  Return number of bytes written, or -1 if
+   unless there is an error.  Return number of bytes written, or 0 if
    there is an error without writing anything.  If the file has been
    opened for append (__mode.__append set), then set the file pointer
    to the end of the file and then do the write; if not, just write at

--
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]