elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tareas programadas en C ¿Como?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Tareas programadas en C ¿Como?  (Leído 8,315 veces)
dgg006

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Tareas programadas en C ¿Como?
« en: 15 Junio 2011, 16:44 pm »

Hola. Otra ves molestando por acá...

Lo que ahora necesito, puede ser algo útil para muchos, no se como explicarlo bien, así que les cuento lo que debería hacer...

"Es un programa en C, para planificar tareas por horario.
Tendría que leer en un TXT, un hora X (ej:15:22)
Cuando la hora del sistema, sea igual que esa hora X, debe escribir un valor en otro TXT y dejar en blanco el TXT anterior"

Para orientarlos a lo que va dedicado este código, les cuento:
Estoy diseñando un sistema domotico, que a través de internet controla unos relay conectados al paralelo.
La pagina (en PHP) crea un TXT con un 0 o un 1
Un programa en C, lee ese txt, y dependiendo si es un 0 o un 1, apaga o enciende el relay.
Todo eso ya esta echo y funcionando, pero quiero agregarle un estilo de planificación, entonces a la hora elegida, se escribe un 0 o un 1 en el TXT.

Espero su ayuda


En línea

Died

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #1 en: 15 Junio 2011, 17:00 pm »

No he leído a fondo, pero para programar tareas sencillamente coge la hora en el formato que necesites y compárala con lo que quieres.
Un saludo. Sagrini


En línea

dgg006

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #2 en: 15 Junio 2011, 17:49 pm »

El tema es ¿como?
En línea

ksiksi

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #3 en: 15 Junio 2011, 18:17 pm »

No sé si entendi bien, pero la idea seria hacer un createprocess con un bucle para mantenerlo vivo y usar localtime para averiguar la hora: http://c.conclase.net/librerias/?ansifun=localtime#inicio
Eso si estas en windows, pq createprocess es una api de windows.
Sin embargo, sospecho que debe haber una forma mas facil de hacerlo.
En línea

dgg006

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #4 en: 15 Junio 2011, 18:25 pm »

Creo que no lo aclare...
Es bajo Linux.. (Ubuntu Server)
En línea

Died

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #5 en: 15 Junio 2011, 19:37 pm »

Código
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <time.h>
  4.  
  5. char buffer [40];
  6.  
  7. char *times ()
  8. {
  9. time_t now = time (0);
  10. struct tm *ahora;
  11. ahora=localtime ((const time_t*)&now);
  12. strftime (buffer, 40, "%d/%m/%Y", ahora);
  13. return (char *) buffer;
  14. }
  15.  
  16. int main ()
  17. {
  18. if (strcmp (times (), "15/06/2011") == 0) printf ("1");
  19. else printf ("0");
  20.  
  21. return 0;
  22. }
  23.  
Código:
$ gcc -o code code.c
$ ./code
1
$

La próxima vez mira algo en Google :)
Un saludo. Sagrini
En línea

dgg006

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #6 en: 16 Junio 2011, 02:41 am »

Lo voy a probar y les cuento..
Igual te cuento que busque, pero google te ayuda cuando sabes que buscas, y yo no estoy seguro de que es
En línea

dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #7 en: 17 Junio 2011, 05:17 am »

jeje recuerdo tu proyecto.. me alegro de que hayas progresado  :D

El problema de hacerlo de esa forma es que desde el programa en C deberás estar todo el rato comprobando la hora en un bucle... A menos que te compliques la vida usando algun manejador de señales o algo similar (ejemplo--> http://linux.die.net/man/3/sem_wait ) tu programa se volverá muy ineficiente.

Mi consejo..., ya que vas a usar un sistema Linux, es que te ayudes de los comandos del sistema, por ejemplo "at" o "crontab" y los llames desde el programa en C con los parametros correspondientes (fecha de ejecución,comando a ejecutar, etc)

PD: es más.. ya que tienes un "sistema" domótico compuesto de diversos programas también podrías contemplar la posibilidad de usar un "script en bash" directamente para gestionar la programacion de tareas (invocando a alguno de los comandos que te he mencionado anteriormente) y olvidarte de C. Como tu lo veas más facil  ;)
« Última modificación: 17 Junio 2011, 05:23 am por dakomt » En línea

dgg006

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #8 en: 17 Junio 2011, 14:48 pm »

Hola dakomt.
Me alegro que recuerdes mi proyecto, y si,  mi bebe está creciendo a pasos agigantados  ;D

Entiendo lo que dicen sobre la ineficiencia de lo que busco. Voy a buscar sobre los comandos que me pasaste,.


Para Died:
Hice un par de modificaciones en el codigo que me pasaste, y casi funciona.
Código:
#include <string.h>
#include <stdio.h>
#include <time.h>
 
char buffer [40];
 
char *times ()
{
time_t now = time (0);
struct tm *ahora;
ahora=localtime ((const time_t*)&now);
strftime (buffer, 40, "%H:%M", ahora);
return (char *) buffer;
}
 
int main ()
{
if (strcmp (times (), "20:45") == 0)
      printf ("1");
else
      printf ("0");
 
return 0;
}
 

Donde dice "20:45" es donde se ingresa la hora que quieres.
La pregunta es, si tengo la hora en un TXT, que comando uso???
Ya he trabajado con TXT pero este me confundió
En línea

Died

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Tareas programadas en C ¿Como?
« Respuesta #9 en: 17 Junio 2011, 16:13 pm »

Usa las funciones fopen (), fclose (), fgets (), etc...
Un saludo. Sagrini
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Asistente virtual, reconocimiento de voz, tareas programadas etc. Existe? « 1 2 »
Software
Littlehorse 13 12,256 Último mensaje 14 Junio 2013, 12:20 pm
por topomanuel
Llamar a tareas programadas con BAT
Scripting
elecktra 1 8,439 Último mensaje 27 Agosto 2009, 20:24 pm
por Novlucker
tareas programadas
Programación Visual Basic
Fabricio 2 2,472 Último mensaje 8 Septiembre 2009, 16:24 pm
por Fabricio
Creacion de Script con tareas programadas.
Scripting
UrbanIT 2 6,162 Último mensaje 7 Febrero 2012, 11:59 am
por UrbanIT
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines