Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-Id: <5.0.0.25.0.20010330093251.00a66a30@barbar.esat.kuleuven.ac.be> X-Sender: uwe AT barbar DOT esat DOT kuleuven DOT ac DOT be X-Mailer: QUALCOMM Windows Eudora Version 5.0 Date: Fri, 30 Mar 2001 09:37:31 +0200 To: "Robert Collins" , "Mumit Khan" From: Uwe Pahner Subject: Re: fscanf does not return EOF Cc: In-Reply-To: <01f201c0b8d5$6e9c5d60$0200a8c0@lifelesswks> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Thanks Mumit and Rob! The explicit test to EOF does the trick. I replaced the direct call of the fscanf function in my code with the following: int readline(FILE *inputfile,char *linetxt) { int k; k=fscanf(inputfile," %[^\r]",linetxt); if ((k==0)&&(feof(inputfile)!=0)) k=EOF; return(k); } This seems to work fine. Uwe At 02:53 PM 3/30/01 +1000, Robert Collins wrote: >----- Original Message ----- >From: "Mumit Khan" >To: "Uwe Pahner" >Cc: >Sent: Friday, March 30, 2001 2:31 PM >Subject: Re: fscanf does not return EOF > > > > On Thu, 29 Mar 2001, Uwe Pahner wrote: > > > > > Hi, > > > > > > > I suggest portable coding, where you read the lines one by one using > > fgets, checking for EOF, and if not, pass the line buffer it to >sscanf. > > Or, use fscanf, but check explicitly for eof on the stream when you > > see a return value of 0. > > > > I may of course be reading the specification wrong. > > > > Regards, > > Mumit > > > >I think you're right: I am using fscanf in my fifo tests, and the first >iteration was written without checking the specs:].. as soon as I ran >man 3 fscanf on my opsnBSD machine (best man pages ever) I saw the same >point of confusion. Coding to the spec worked fine on cygwin. > >Rob -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple