Hi,

I'm currently fixing... my fix!
I have some questions related to things that are not yet clear to me...

2012/1/22 Jérémie Koenig <[email protected]>

> The usual trick for "%d" is to use the constant "sizeof (int) * 3 +
> 1". I included + 1 for the sign, but it's not really necessary if we
> exepect sizeof(int) >= 2, which we probably should.
>
Why '*3'? Do you expect PID to be in a certain range? Or is it C-voodoo?!

Also, I think there are some problems with your pointer arithmetic.
> For instance,
>      if (fgets(buf+last,size,f) == NULL)
> will overwrite the last character read from the previous iteration (if
> there was one).
>
According to the 'gets' page, each "read" returns a '\0' terminated string.
Each time I get rid of this '\0' when concatenating.


> I would say the "first unused byte" convention is more common and
> straightforward.
>
I'll rewrite a more consistent code...

buf[last+1] will always be '\0' (the terminating null character of the
> string). I also think you mean to return when the last character _is_
> a newline (fortunately the two mistakes cancel each other out in the
> usual case of no reallocation needed :-).
>
My Bad!!


> Last, but not least, you should be careful with whitespace. Your patch
> mixes tabs and spaces for indentation,

... which is perfectly consistent with the original code! ;-)
 Is a mix (maybe with a logic... I haven't figured it out yet) of spaces
and tabs. I can try to reproduce the same "pattern" but not sure what the
rule is!

Thanks again, hope next iteration will be better!

Tanguy

Reply via email to