This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: ldlex should use streams
- From: "H . J . Lu" <hjl at lucon dot org>
- To: Andreas Jaeger <aj at suse dot de>
- Cc: binutils at sources dot redhat dot com
- Date: Sun, 20 Jan 2002 11:25:46 -0800
- Subject: Re: ldlex should use streams
- References: <u8r8olv5vc.fsf@gromit.moeb>
On Sun, Jan 20, 2002 at 08:28:07AM +0100, Andreas Jaeger wrote:
>
> We currently have a discussion on the glibc lists that you cannot just
> do fopen a file and then read on it, the file pointer need not be at
> the beginning of the file (it seems to be in all current
> implementations but you never know).
>
> Therefore I propose the following simple patch to avoid this
> situation, I don't see a reason for read in that place.
>
> Ok to commit? I run make check sucessfully.
>
> Andreas
>
> 2002-01-20 Andreas Jaeger <aj@suse.de>
>
> * ldlex.l: Use fread instead of read.
>
> ============================================================
> Index: ld/ldlex.l
> --- ld/ldlex.l 2001/10/20 13:49:00 1.8
> +++ ld/ldlex.l 2002/01/20 07:27:37
> @@ -1,7 +1,7 @@
> %{
>
> -/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
> - Free Software Foundation, Inc.
> +/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
> + 2000, 2001, 2002 Free Software Foundation, Inc.
>
> This file is part of GLD, the Gnu Linker.
>
> @@ -595,7 +595,7 @@
> {
> if (yyin)
> {
> - *result = read (fileno (yyin), (char *) buf, max_size);
> + *result = fread ((char *) buf, 1, max_size, yyin);
> if (*result < 0)
> einfo ("%F%P: read in flex scanner failed\n");
> }
>
Personally, I think it is a bad idea to mix stdio with read/write.
fread should be used regardless what glibc is doing.
H.J.