This code has been take from moko_eightball by Jakob Westhoff: it just continuously prints the value of the three accelerometers.
#include <stdio.h> #include <stdint.h> void processInputEvents(FILE* in) { int x = 0, y = 0, z = 0; while (1) { char padding[16]; uint16_t type, code; int32_t value; // Skip the timestamp fread(padding, 1, 8, in); // Read the type fread(&type, 1, 2, in); // Read the code fread(&code, 1, 2, in); // Read the value fread(&value, 1, 4, in); switch( type ) { case 0: switch( code ) { case 0: fprintf(stdout, "x%d y%d z%d\n", x, y, z); break; default: //warning( "Unknown code ( 0x%02x ) for type 0x%02x\n", code, type ); break; } break; case 2: switch ( code ) { case 0: // Update to the new value x = value; break; case 1: // Update to the new value y = value; break; case 2: // Update to the new value z = value; break; default: //warning( "Unknown code ( 0x%02x ) for type 0x%02x\n", code, type ); break; } break; default: //warning( "Unknown type ( 0x%02x ) in accelerometer input stream\n", type ); break; } } } int main() { FILE* in = fopen("/dev/input/event2", "r"); processInputEvents(in); fclose(in); return 0; }