Domanda

Sto usando RHEL 4

Sto usando syscall stat come segue: -

if (stat ("file",&stat_obj)){

     if (errno == ENOENT){
        printf("File not found");
     }else{
        printf("Unexpected error occured %d ",errno);
     }
}

a volte ricevo un messaggio di errore come " " Si è verificato un errore imprevisto 0 "

Ciò significa che ricevo l'errore come " 0 " . ho controllato i permessi dei file che sono ok

cosa significa? Non riesco a capire perché a volte questo accada?

Qualche suggerimento?

È stato utile?

Soluzione

Ti dà qualche messaggio di errore significativo se lo chiami in questo modo?

   if (stat("file", &stat_obj) == -1) {
       perror("stat");
   }

Altri suggerimenti

Hai un gestore dei segnali nel tuo programma? In tal caso, e potrebbe influire su errno, quindi assicurati di salvare #include <errno.h> sulla voce e ripristinarlo al valore originale prima di tornare.

Assicurati anche di -D_TS_ERRNO e di non dichiararti <=> te stesso, specialmente se il tuo programma è multithread. <=> è una variabile per thread, quindi se la dichiari globale è possibile ottenere quella sbagliata. (Su alcune piattaforme a volte è necessario anche uno speciale flag di compilazione come <=> per errno thread-safe, ma su Linux non è necessario tale flag.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top