Ciao a tutti, ieri stavo lavorando in RedHat 7.1 con StarOffice 5.2 e Forte for Java aperti su un programma Java che sfrutta una libreria in C quando l'harddisk ha iniziato a rallentare paurosamente e a diventare rumorosissimo. Dopo un po' di macinare ha iniziato a dare errori di lettura a fiotti su blocchi del disco di root. Spegnendo non si è più riavviato decentemente e sono riuscito a riavviarlo con i dischi di boot di Slackware e a montare i dischi solo per il tempo necessario a copiare i files di maggior interesse. Ai successivi riavvi nei modi più disparati (e disperati ... ;-) ) (tipo disco di boot RH 7.1, CDrom RH 7.1, dischi di boot Slackware) non sono neanche più riuscito a montare il disco. Da dos ho provato a ripartizionare e si è piantato allo 0% della verifica dell'integrità. Domanda 1) Secondo voi cosa è successo ? (ritengo danni al supporto fisico per gioventù, era un disco di 2 mesi di vita/lavoro) Domanda 2) Può essere stato un errore mio o della routine in C, che vi allego di seguito? Grazie a tutti, Stefano. /* * PArNative.c: shared library for port I/O for Java integration * * Compile with `gcc -shared -I/usr/java/jdk1.3.1/include -I/usr/java/jdk1.3.1/include/linu x -o libpar.so', * */ #include <stdio.h> #include <unistd.h> #include <asm/io.h> #include <jni.h> #include "Parallela.h" #define BASEPORT 0x378 /* lp1 */ JNIEXPORT jint JNICALL Java_Parallela_ReadPar (JNIEnv *env, jobject obj, jint app) { unsigned char ingresso; /* Get access to the ports */ if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);} /* Sleep for a while (100 ms) */ usleep(100000); /* Read from the status port (BASE+1) and storage the result */ app=inb(BASEPORT + 1); /* We don't need the ports anymore */ if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);} return app; } JNIEXPORT void JNICALL Java_Parallela_WritePar (JNIEnv *env, jobject obj, jint scritto) { /* Get access to the ports */ if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);} /* Sleep for a while (100 ms) */ usleep(100000); outb(scritto, BASEPORT); /* We don't need the ports anymore */ if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);} return; } <========---------- Prima di scrivere in m-list per favore leggi il regolamento http://lugge.ziobudda.net/benvenuto.html