#include #include #include #include #include #include int main(int argc, char *argv[]) { if(argc!=2) { printf("usage: %s \n", argv[0]); return 1; } int MouseFd=open(argv[1], O_RDONLY); if(MouseFd<0) { printf("can't open %s (%s)\n", argv[0], strerror(errno)); return 1; } char ReadBuf[8]; ssize_t ReadSize; while((ReadSize=read(MouseFd, ReadBuf, 8))==8) { struct timeval Time; if(gettimeofday(&Time, NULL)) { printf("can't get the time of day (%s)\n", strerror(errno)); return 1; } #define BTNSTATECHAR(a) ((a)?'u':'d') printf("%ld.%06ld Buttons: %c %c %c\n", Time.tv_sec, Time.tv_usec, BTNSTATECHAR(ReadBuf[0]&(1<<2)), BTNSTATECHAR(ReadBuf[0]&(1<<1)), BTNSTATECHAR(ReadBuf[0]&(1<<0))); fflush(stdout); } printf("read error on %s (%s\n", argv[1], strerror(errno)); return 1; } /* * Local Variables: * tab-width: 4 * End: */