On Sat, Jul 04 14:11, Kevin Wolf wrote: > ! libc: POSIX: Wenn read 0 zurueckgibt, heisst das EOF. Wenn nur im > Moment nichts da ist, ist -1/EAGAIN der richtige Wert. > > Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx> > --- > src/modules/lib/posix/posix_files.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/src/modules/lib/posix/posix_files.c b/src/modules/lib/posix/posix_files.c > index 34cc4ee..bbf4413 100644 > --- a/src/modules/lib/posix/posix_files.c > +++ b/src/modules/lib/posix/posix_files.c > @@ -254,6 +254,14 @@ ssize_t read(int fd, void* buffer, size_t size) > > size_t bytes = fread(buffer, 1, size, file); > // FIXME: Fehlerbehandlung > + > + if (bytes == 0) { > + if (!feof(file)) { Wie wärs mit if (!bytes && !feof(file)), oder meinetwegen auch (bytes == 0) && !feof(file) > + errno = EAGAIN; > + return -1; > + } > + } > + > return bytes; > } Aber jo, ich glaube dass du das alleine hinbekommst, danach also rein damit ;-) Acked-by: Antoine Kaufmann <toni@xxxxxxxxxx> -- Antoine Kaufmann <toni@xxxxxxxxxxxxxxxx>
Attachment:
pgp8C8725Fep9.pgp
Description: PGP signature