9 #include <linux/input.h>
11 int main(int argc, char *argv[])
13 unsigned int state = 0;
18 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")))
20 fprintf(stderr, "prints 1 if lid is closed, "
21 "0 if open or in unknown state "
22 "or if an error occurs\n");
26 for (id = 0; id < 100; id++)
31 snprintf(fname, sizeof(fname), "/dev/input/event%i", id);
32 fd = open(fname, O_RDONLY);
41 ioctl(fd, EVIOCGNAME(sizeof(name)), name);
42 if (!strcmp(name, "gpio-keys"))
51 fprintf(stderr, "unable to find or access gpio-keys\n");
52 fprintf(stdout, "0\n");
56 ret = ioctl(fd, EVIOCGSW(sizeof(state)), &state);
60 perror("ioctl EVIOCGSW");
61 fprintf(stdout, "0\n");
65 printf("%d\n", state & (1u << SW_LID) ? 1 : 0);