Originariamente inviato da capri81
char temp[10];
strncpy(temp, filename, (size_t)index);

dove index è l'indice all'interno della prima stringa in cui c'è il punto
strncpy dovrebbe copiarmi in temp soltanto i primi "index" caratteri, invece temp contiene il nome del file e un sacco di schifezze.
strncpy copia al massimo N caratteri. Se tra questi non c'è il carattere nullo ('\0'), la stringa non sarà terminata correttamente. Devi aggiungere tu il carattere nullo alla fine.