> + sprintf(tname, "%.*stmp-%s", (int) (bname - name), name, bname); I wonder if we can count on sprintf printing "" with bname-name is zero? I know if you use %.*c with zero, it prints one character.