la funzione funzionava, devi sapere che printf lavora su un file bufferizzato e quindi fa flush quando piu le garba... se fai un flush di stdout dopo avere fatto printf funziona anche la tua vecchia funzione