Ciao, allora....l'unico errore che ho trovato e che se il buffer nella struttura device e vuoto la funzione
nextch riempie il buffer, ma non scrive il primo caratere letto nella varibile
ch, qundi nel programma di test che hai scritto viene stampato un caratere a caso dopo la chiamata alla
nextch. Potresti modificare la
nextch così:
void nextch(){
int i;
if(device.i_buf>9){
for(i=0;i<10;i++){
device.buf[i]=getc(pfile);
}
(device.i_buf)=0;
}
ch=(device.buf[(device.i_buf)]);
(device.i_buf)++;
}
Altri errore non ne vedo, stai attento però a controllare che la
initdev riesca ad aprire il file altrimenti la
nextch fa errore perchè legge da un file chiuso.
Ciao