Hola!,que tal? . Tengo el siguente problema , ( Linux )
Necesito crear un generador de numeros aleatorios(ya lo tengo hecho) , lo que ocurre que ese generador debe de ejecutarse continuamente, como un bucle infinito, dando numeros aleatorios cada cierto tiempo, para que otro programa capture ese numero y realice otras operaciones.
Este generador de numeros , debe de ejecutarse con un programa en C , llamado "lanzador" , pero no se como hacerlo(una especie de make o algo asi?).
El programa de numeros aleatorios seria este:
Código:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
int i=0;
int rango=0;
int litros=0;
int generar=1;
int tiempo=0;
int generado=0;
int espera=0;
srand (time(NULL));
//Entrada seria Ej : ./a.out -r 20
if(argc==1){
printf("Error \n");
exit(0);
}
if(argc==2){
printf("Error \n");
exit(0);
}
if(argc==3){
if(argv[1][0]=='-' && argv[1][1]=='r'){
printf("correzto\n");
rango=atoi(argv[2]);
printf("-> %d \n",rango);
}
else{
printf("Error \n");
exit(0);
}
}
if(argc>3){
printf("Error \n");
exit(0);
}
while(generar==1){
if(generado==0){
espera= rand() % (120-30+1) + 30; // Este está entre M=30 y N=120;
esperar(espera);
generado=1;
}
litros=rand() % (rango-0+1) + 0; // Enter 0 y rango
printf("%d\n",litros);
generado=0;
}
}
La funcion esperar()(ya esta hecha); , haria que el programa esperara el tiempo generado en la variable "espera". Supongo que para el paso de esa variable a otro programa tendre que usar un pipe, pero, al realizar el return en la funcion main, automaticamente acaba la ejecución y yo quiero que continue :( .
El esquema del programa seria:
Código:
/ -> Generador de numeros
Lanzador - - -> Creacion de una serie de procesos que emplearian esos numeros
\ -> Planificador.
Alguien puede explicarme como crear ese lanzador de otros programas en codigo C?
Gracias.