Título: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: nadales56 en 6 Marzo 2019, 09:07 am Buenos días, gracias de antemano por leer el post.
Me gustaría saber cómo puedo hacer que un código que tengo implementado se ejecute automáticamente cada 5 min, por ejemplo. Muchas gracias, un saludo! Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: animanegra en 6 Marzo 2019, 09:21 am Si quires ejecutar el codigo y que este sea el que ejecute la acción debes usar gettimeofday y sleep. Tomas el tiempo antes de un bucle y en el bucle compruebas si el tiempo que ha pasado han sido mas de X segundos (por ejemplo 300). Despues de eso ejecutas la acción que quieras y metes todo el proceso en un bucle infinito.
Si no quieres que se quede el programa en ejecución en windows tendrás que ponerlo en tareas programadas, o en caso de usar un linux pues en el cron. Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: nadales56 en 6 Marzo 2019, 09:47 am Muchas gracias por responder animanegra!
Lo cierto es que soy un poco manco a la hora de programar, y creo que he entendido lo que me has escrito. Echaré un vistazo e iré probando. Un saludo! Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: animanegra en 6 Marzo 2019, 10:55 am Escribiendo el código así sin comprobar y en c estructurado seria algo asi (no se ni si compila):
Código:
Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: K-YreX en 6 Marzo 2019, 16:55 pm Escribiendo el código así sin comprobar y en c estructurado seria algo asi (no se ni si compila): Código:
Un bucle <while> infinito se puede hacer simplemente con un 1 igual que se puede hacer sólo con <true>: Código
Y la otra pregunta que me surge es... Si desde un principio sabes el tiempo que tienes que esperar ¿por qué no así? Código
Lo malo de esta forma (tanto con una implementación como con la otra) es que el programa tiene que estar siempre ejecutándose; como ya te ha comentado @animanegra, es preferible dejarlo como tarea programa usando herramientas externas al propio programa. Suerte :-X Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: nadales56 en 7 Marzo 2019, 08:17 am Muchísimas gracias por responder!!
ya he conseguido resolver el problema, y me funciona a la perfección. Código
La duda que tengo ahora es si lo que tengo hecho es algo muy basto o si hay alguna mejora que podría hacerle. ¿cómo hago para dejarlo como tarea programa? en qué beneficiaría exactamente que el código no estuviese siempre ejecutándose? Un saludo y muchas gracias! Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: K-YreX en 7 Marzo 2019, 13:00 pm Tienes un error en ese código... Si te fijas nunca vas a salir del <while> ya que no estás comparando <continuo> con <true> sino que estás asignando <true> a la variable <continuo> (ya que sólo estás usando un =). Si el propósito es ese, un bucle infinito, entonces es innecesario eso; y si el objetivo no es ese tienes que corregir esa condición...
Además te has dejado unas comillas al final de <entrada = "Fichero_Destino.txt">. Y hombre un poco basto sí que es... Tener el programa continuamente en ejecución, primero; te está consumiendo recursos del pc y luego que podrías cerrarlo por error y perder toda la progresión. Para establecerlo como una tarea programada tienes que buscarlo según el sistema operativo (que en tu caso imagino que es Windows). Suerte :-X Y ahora por añadir algo más te dejo otra opción para ese tipo de condicionales con una variable <bool>: Código
Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: nadales56 en 8 Marzo 2019, 08:43 am Tienes razón, ese continuo = true está mal, claro, como me funcionaba pues ni me he fijado, y al ser también un indicativo de si el proceso ha ido bien, pues el == es lo que hay que poner. Muchas gracias!
Entonces, si recurro al programador de tareas del PC y mando que esa tarea se ejecute cada 5 min automáticamente, no sería necesario usar los comandos Sleep y demás no? Agradezco mucho vuestras respuestas! un saludo Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: K-YreX en 8 Marzo 2019, 08:47 am No, no es necesario el <Sleep()> ya que eso lo hemos incluido ahora para mantener el programa "dormido" durante X tiempo aunque esté siempre ejecutándose. Pero si se programa cada X tiempo, entonces el programa terminará una vez y cuando pase X, volverá a ejecutarse. Suerte :-X
Título: Re: Cómo hacer para que un código de C++ se ejecute cada X tiempo automáticamente Publicado por: nadales56 en 8 Marzo 2019, 08:57 am Maravilloso! Muchas gracias por la ayuda que he recibido!
Que pasen un buen día! =) |