Ayuda con esta función en C

Iniciado por GominaTilted, 4 Abril 2020, 18:07 PM

0 Miembros y 1 Visitante están viendo este tema.

GominaTilted

Esta función me da error al abrir el fichero y no entiendo muy bien por qué, si alguien me puede ayudar un poco se lo agradecería eternamente :p

/*
* función base de los consumidores
* - cada consumidor va volcando línea a línea el contenido del buffer
*   en el fichero cuyo nombre se le pasa como parámetro
*/
void *consumidor(void *arg)
{
    int fin = 0;
    char *s = arg, *b;
    pthread_t id;
    FILE *f;
   
    f = fopen(s, "w");
   
    if (f == NULL)
    {
        perror("Error abriendo fichero.\n");
        exit(1);
    }
   
    id = pthread_self();
   
   while(fin != 1)
   {
       if (buf_vacio(buf))
       {
           pthread_cond_wait(&cond_prod, &mtx);
       }
       else if (buf_vacio(buf) && terminar == 1)
       {
           fin = 1;
       }
       else
       {
          b = buf_quitar(buf);
          fputs(b, f);
          pthread_cond_wait(&cond_prod, &mtx);
    }
   }
   
   fclose(f);
   printf("Consumidor %lu: fichero de salida: '%s'.\n", id, (char *) s);
   
    return (void *) 1;
}

fary

CREO que el código esta bién... ¿Puede ser que tu programa no tenga suficientes privilegios?
Prueba a ejecutar tu programa como admin.

saludos.
Un byte a la izquierda.