Ben fo que tu regardes comment sont faites les chaines de caracteres en C.
en C une chaine de caractere se termine par \0 (autrement dit 0. le chiffre, pas le caractere, hein ? pas '0' quoi). donc au debut j'ecrase tout le buffer avec mes 0 comme ca quelque soit le nombre de caractere lu j'ai tjs un 0 a la fin (enfin, presque sauf si tu lis 1024 caractere, la ca va planté. )