codice:
fscanf(file.txt, "%s;%s;%s", stringa1, srtinga2, stringa3);
file.txt che dovrebbe essere?? Prova con "%s;%s;%s\n"

In ogni caso quel codice che hai scritto è sbagliato perché strncpy non appende il terminatore di stringa ( '\0' ).

Poi è molto più semplice fare tre strtok:
codice:
strcpy(s1, strtok(src, ";"));
strcpy(s2, strtok(NULL, ";"));
strcpy(s3, strtok(NULL, "\n"));