Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //termostato.c
- int main(){
- int rilevata,impostata,i;
- int errore = 0;
- char * temp = "";
- //fase iniziale in cui si setta la temperatura impostata
- while(!errore){
- i=fork();
- if(i<0){ error=1; perror("errore fork!"); exit(-1); }
- if(i==0){
- execl("./temperatura","temperatura","",NULL);
- error=1; perror("errore rilevamento!"); exit(-1);
- }
- while(i!=wait(&rilevata)){}
- //attendi finche non termina "temperatura" e restituisce un valore
- //salva tale valore in "rilevata"
- //qui è sbagliato fare l'exec così direttamente, bisognerebbe forkare e poi far fare l'exec al figlio
- if(rilevata < impostata){
- sprintf(temp,"%d",(impostata-rilevata));
- execl("./riscalda","riscalda",temp,NULL);
- error=1; perror("errore riscaldamento!"); exit(-1);
- }
- else if(rilevata > impostata){
- sprintf(temp,"%d",(rilevata-impostata));
- execl("./raffredda","raffredda",temp,NULL);
- error=1; perror("errore raffreddamento!"); exit(-1);
- }
- }//end of while.
- }//end of main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement