An sich wäre da "ltoa" statt "itoa" zuständig.

extern char *ltoa(long int __val, char *__s, int __radix);

versuch's mal.

EDIT:
eventuell auch das:

extern char *utoa(long int __val, char *__s, int __radix);