Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: GominaTilted en 4 Abril 2020, 18:07 pm



Título: Ayuda con esta función en C
Publicado por: GominaTilted en 4 Abril 2020, 18:07 pm
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
Código
  1. /*
  2.  * función base de los consumidores
  3.  * - cada consumidor va volcando línea a línea el contenido del buffer
  4.  *   en el fichero cuyo nombre se le pasa como parámetro
  5.  */
  6. void *consumidor(void *arg)
  7. {
  8.    int fin = 0;
  9.    char *s = arg, *b;
  10.    pthread_t id;
  11.    FILE *f;
  12.  
  13.    f = fopen(s, "w");
  14.  
  15.    if (f == NULL)
  16.    {
  17.        perror("Error abriendo fichero.\n");
  18.        exit(1);
  19.    }
  20.  
  21.    id = pthread_self();
  22.  
  23.   while(fin != 1)
  24.   {
  25.       if (buf_vacio(buf))
  26.       {
  27.           pthread_cond_wait(&cond_prod, &mtx);
  28.       }
  29.       else if (buf_vacio(buf) && terminar == 1)
  30.       {
  31.           fin = 1;
  32.       }
  33.       else
  34.       {
  35.          b = buf_quitar(buf);
  36.          fputs(b, f);
  37.          pthread_cond_wait(&cond_prod, &mtx);
  38.    }
  39.   }
  40.  
  41.   fclose(f);
  42.   printf("Consumidor %lu: fichero de salida: '%s'.\n", id, (char *) s);
  43.  
  44.    return (void *) 1;
  45. }


Título: Re: Ayuda con esta función en C
Publicado por: fary en 4 Abril 2020, 21:41 pm
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.