Advertisement
Jerkiller

Sistemi operativi

Dec 10th, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5. #include <sys/stat.h>
  6. #include <string.h>
  7. #include <stdlib.h>
  8.  
  9.  //PIN e POUT sono altri nomi delle pipe
  10. #define POUT "carPipeOut"
  11. #define PIN "carPipeIn"
  12.  
  13. int main(){
  14.     int round,fdin,fdout,bytesread,hole,car;
  15.     char message[100];
  16.     char answer[8];
  17.  
  18.     mkfifo(POUT,0666);
  19.     mkfifo(PIN,0666);
  20.    
  21.     if ( (fdout = open (POUT,O_RDONLY)) < 0 ) { // apre la pipe in lettura
  22.         perror("errore apertura pipe");
  23.         exit(1);
  24.     }
  25.     if ( (fdin = open (PIN,O_WRONLY)) < 0 ) { // apre la pipe in lettura
  26.         perror("errore apertura pipe");
  27.         exit(1);
  28.     }
  29.    
  30.     car=7;
  31.    
  32.  
  33.  
  34.     for(round=0;round<=20;round++){
  35.         printf("*************\nround %d! Start!\n",round+1);
  36.         strcpy(answer, "");
  37.        
  38.        
  39.         bytesread = read(fdout,message,100);
  40.         printf("Ho letto %d caratteri: %s\n",bytesread,message);
  41.        
  42.        
  43.         sscanf(message,"%d#",&hole);
  44.        
  45.         while(hole!=car){
  46.            
  47.             if(hole<car){strcat(answer,"l"); car--;}
  48.             else{strcat(answer,"r"); car++;}
  49.            
  50.         }
  51.         printf("Scrivo %s\n",answer);
  52.         write (fdin,answer,strlen(answer));
  53.  
  54.  
  55.  
  56.     }
  57.  
  58.     close(fdin); close(fdout);
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement