From: Erik Max Francis Newsgroups: comp.os.msdos.djgpp Subject: Re: read() question!!!!!!!!! Date: Fri, 22 Nov 1996 09:52:33 -0800 Organization: Alcyone Systems Lines: 23 Message-ID: <3295E861.2DC63245@alcyone.com> References: <574j6m$ptc AT pulp DOT ucs DOT ualberta DOT ca> NNTP-Posting-Host: newton.alcyone.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Gorman Ho wrote: > For some reason there is an extra 't' in the example. When I read a > lot of characters (say 80 or so), there are 3 extra characters!! What > am I doing wrong here?? Read just reads a block of data; in this case, 19 bytes worth. You're then passing this to puts, which expects a NUL-terminated string. Your code should instead look like this: char buffer[20] = read(file, buffer, 19); buffer[19] = 0; /* now it's NUL-terminated */ puts(buffer); Note you should also be checking the return value of the call to read to check for errors. -- Erik Max Francis | max AT alcyone DOT com Alcyone Systems | http://www.alcyone.com/max/ San Jose, California | 37 20 07 N 121 53 38 W &tSftDotIotE | R^4: the 4th R is respect "But since when can wounded eyes see | If we weren't who we were"