Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema al crear una FIFO

Estas en el tema de Problema al crear una FIFO en el foro de C/C++ en Foros del Web. Hola, hice un programa que toma la entrada de audio y la guarda en una fifo, utlice obviamente la funcion mkfifo, y luego hcie otro ...
  #1 (permalink)  
Antiguo 13/01/2013, 21:11
 
Fecha de Ingreso: julio-2011
Mensajes: 21
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Problema al crear una FIFO

Hola, hice un programa que toma la entrada de audio y la guarda en una fifo, utlice obviamente la funcion mkfifo, y luego hcie otro para leerla y reproducir lo leido. Funciona todo perfectamente, el problema l otengo cuando ejecuto nuevamente el programa (sin borrar la fifo que se creo anteriormente) y no me la pisa la anterior con la nueva y me tira error. Utilizando printf("error: %s", strerror(EL DATO DE LA FIFO)), lo unico que me idce es "Error desconocido -1". y termina ahi. Alguien sabe que esta pasando? quiero evitar utilizar la funcion system, que segun se puedo pasarle la instruccion para borrar la fifo cuando ya termino el programa, porque no es lo ideal. Gracias!
  #2 (permalink)  
Antiguo 14/01/2013, 01:19
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Problema al crear una FIFO

Hola! cuando decis "termina ahi" te referis a que el programa se cierra solo?? si es asi q raro, a menos que uses una funcion como exit no deberia cerrarse...

Para evitar ese error si o si vas a tener que borrar el archivo fifo si existe previamente(o al menos eso recuerdo). Si no queres usar system tenes la funcion unlink() aunque estoy seguro que tampoco vas a querer usarlo ya que seria lo mismo; deberia haber un flag para que al crear el fifo omitiera si esté ya existe


Otra cosa, me parece que estas usando mal el strerror ya que no deberia imprimir "error desconocido -1" sino deberia decir "file exists". Para que esto suceda debes usar la variable errno y no el retorno de mkfifo
Código C:
Ver original
  1. printf("error: %s", strerror(errno));


Saludos
  #3 (permalink)  
Antiguo 14/01/2013, 08:55
 
Fecha de Ingreso: julio-2011
Mensajes: 21
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema al crear una FIFO

Claro, olvide aclarar que el programa sae cierra porque puse un exit() jaja, ahi esta, claro, me dice que la conexion ya existe el archivo con errno, por lo que la conexion ya esta hecha y no es necesario volver a crearla, entonces simplemente agregue un if para saber si errno es distinto a la constante de EEXIST (archivo existente) nmo cierro el programa, por cualquier otro error lo imprimo y lo termino. GRACIAS!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.