Q: What's the deal on sprintf's return value? Is it an int or a char *?
A: The Standard says that it returns an int (the number of characters written, just like printf and fprintf). Once upon a time, in some C libraries, sprintf returned the char * value of its first argument, pointing to the completed result (i.e. analogous to strcpy's return value).
ISO Sec. 188.8.131.52
PCS Sec. 11 p. 175