sprintf(buf, "%s some further text", buf);
If you miss that section of the manual, your code may work, leading you to think the behavior is defined.Then you will have interesting arguments with other programmers about what exactly is undefined behavior, e.g. what happens for
sprintf(buf, "%d %d", f(i), i++);