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

Ejecutar código antes de cerrar aplicación

Estas en el tema de Ejecutar código antes de cerrar aplicación en el foro de C/C++ en Foros del Web. Tengo un problema. Estoy realizando una aplicación en C++ que ingresa datos en una base de datos a través de un script PHP que está ...
  #1 (permalink)  
Antiguo 16/03/2012, 11:12
 
Fecha de Ingreso: junio-2011
Ubicación: Mendoza
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Ejecutar código antes de cerrar aplicación

Tengo un problema. Estoy realizando una aplicación en C++ que ingresa datos en una base de datos a través de un script PHP que está en el mismo servidor que la base de datos, ya que la bd no tiene acceso desde el exterior, sino que solo en localhost.

Ya tengo las funciones hechas que permiten el envío de datos. Estas funciones hacen el uso de sockets enviando un POST (Windows).

Yo quisiera hacer que cuando el programa se cierra, ya sea porque se le mande la señal de cerrado o se apague Windows, este envíe un comando POST al servidor mediante SOCKETS.

Para hacer esto usé atexit() pero me da un problema: cuando el programa recibe la señal de cierre, cierra las librerías de sockets y luego ejecuta la función que hay en atexit(), entonces no puedo hacer uso de sockets en esta función porque fue cerrada la librería para hacer esto.

Qué puedo hacer? Me podrían dar una buena solución para enviar datos a través de sockets una vez que el programa recibe la señal de cierre?

Gracias de antemanos.
  #2 (permalink)  
Antiguo 16/03/2012, 17:36
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ejecutar código antes de cerrar aplicación

Creo que con señales deberia funcionar. Aca tenes un ejemplo:

http://www.cplusplus.com/reference/c...signal/signal/

Etiquetas: atexit, c++, post, socket, bases-de-datos
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 05:40.