sprintf doesn't count the final null character. If you are going to
allocate space to copy the string, you will need that extra one.
readlink() shouldn't be returning the terminating NULL, nor counting it
in the size returned by the system call.
- Ted