[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tyndur-devel] [PATCH 2/3] libc: POSIX: Rueckgabewert von read



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: pgpe8gHcUlCDC.pgp
Description: PGP signature