sprintf pour _int64 non signé

Je vais avoir des code suivant. sortie de la deuxième %d dans sprintf est toujours montré comme zéro. Je pense que je suis en précisant mauvais prescripteurs. Quelqu'un peut-il m'aider à obtenir écrire chaîne avec les valeurs de droite. Ce qui a atteint dans la norme posix. Merci pour les entrées

void main() {
    unsigned _int64 dbFileSize = 99;
    unsigned _int64 fileSize = 100;
    char buf[128];
    memset(buf, 0x00, 128);
    sprintf(buf, "\nOD DB File Size = %d bytes \t XML file size = %d bytes", fileSize, dbFileSize);
    printf("The string is %s ", buf);
    }

De sortie:

The string is
OD DB File Size = 100 bytes      XML file size = 0 bytes 

source d'informationauteur venkysmarty