Pregunta

Estoy usando red hat enterprise linux 4

estoy usando syscall stat de la siguiente manera:-

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

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

a veces me da mensaje de error como "Inesperado"error 0"

Eso significa que tengo un error como "0" .he comprobado los permisos de archivo que están bien

¿qué significa eso?Yo no soy capaz de entender por qué a veces esto está sucediendo ?

Alguna sugerencia?

¿Fue útil?

Solución

¿Le da algún mensaje de error significativo si lo llama así?

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

Otros consejos

¿Tiene un manejador de señal en su programa?Si es así, y puede afectar a errno, a continuación, asegúrese de que guarda errno en la entrada y lo restaura a su valor original antes de regresar.

También asegúrese de que usted #include <errno.h>, y no declarar errno a sí mismo, especialmente si su programa es multiproceso. errno es por subproceso variable, de forma que si se declara como un mundial puede obtener el equivocado.(En algunas plataformas que a veces también se necesita un especial recopilatorio de la bandera como -D_TS_ERRNO para subprocesos errno, pero esta bandera es necesario en Linux.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top