[aclug-L] Re: Weekly C quiz
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Larry Bottorff wrote:
>
> Here's the next installment of Larry's Weekly C Quiz. This week we're
> looking at buffer overruns. Here's some code:
>
> #define MAX_BUF 201
> ...
> char buffer[MAX_BUF];
> FILE *file_in;
> ...
> while (fgets(buffer, sizeof(buffer), file_in) != NULL) {
> ....
> }
>
> If fgets returns a line from file_in's file bigger than MAX_BUF, buffer
> is full at the maximun size, the rest not going into buffer: good. But
> then the next fgets seems to fill buffer with the leftover from the
> input file's last line. How can I "flush" fgets so a longer line's
> leftover doesn't show up in the next fgets?
Just write your own loop. Note that fgetc() is a macro, so there's no
system call overhead in your loop, so it should run as fast as fgets().
> Larry
>
> -- This is the discussion@xxxxxxxxx list. To unsubscribe,
> visit http://tmp2.complete.org/cgi-bin/listargate-aclug.cgi
--
/*
* Tom Hull * thull@xxxxxxxxxxx * http://www.ocston.org/~thull/
*/
-- This is the discussion@xxxxxxxxx list. To unsubscribe,
visit http://tmp2.complete.org/cgi-bin/listargate-aclug.cgi
- [aclug-L] Weekly C quiz, Larry Bottorff, 2000/03/10
- [aclug-L] Re: Weekly C quiz,
Tom Hull <=
- [aclug-L] Re: Weekly C quiz, John Reinke, 2000/03/11
- [aclug-L] Re: Weekly C quiz, Larry Bottorff, 2000/03/11
- [aclug-L] Re: Weekly C quiz, Tom Hull, 2000/03/11
- [aclug-L] Re: Weekly C quiz, Tom Hull, 2000/03/12
- [aclug-L] Re: Weekly C quiz, John Reinke, 2000/03/12
- [aclug-L] Re: Weekly C quiz, Larry Bottorff, 2000/03/12
|
|