From 23701b28174a47ddf1d0eabd3c6d74640bae0e9f Mon Sep 17 00:00:00 2001 From: Andi Shyti Date: Thu, 15 Dec 2016 15:22:00 +0900 Subject: initial commit the repository contains ep.c, Makefile and .gitignore Signed-off-by: Andi Shyti --- .gitignore | 3 +++ Makefile | 10 ++++++++++ ep.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 ep.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..368279e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +ep +*.o +*.swp diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf8ba12 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +TARGET = ep +SRC = $(TARGET).c +FLAGS = -g -Wall + +$(TARGET): + cc $(FLAGS) $(SRC) -o $(TARGET) + +.PHONY: clean +clean: + rm -f $(TARGET) diff --git a/ep.c b/ep.c new file mode 100644 index 0000000..81546b9 --- /dev/null +++ b/ep.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include +#include + +#define EP_INPUT_PATH "/dev/input/" +#define EP_INPUT_NAME_SIZE 256 + +static int ep_select(const struct dirent *ep) +{ + if(ep->d_type != DT_CHR) + return 0; + + if(!strstr(ep->d_name, "event")) + return 0; + + return 1; +} + +int main(int argc, char *argv[]) +{ + struct dirent **eps; + int i; + int n; + int ret = 0; + + n = scandir(EP_INPUT_PATH, &eps, ep_select, alphasort); + if (!n) { + perror ("couldn't open the directory"); + return -1; + } + + for (i = 0; i < n; i++) { + char path[64]; + int fd; + char dev_name[EP_INPUT_NAME_SIZE]; + + sprintf(path, EP_INPUT_PATH "%s", eps[i]->d_name); + + fd = open(path, O_RDONLY); + if (fd < 0) { + perror("cannot open file"); + return -1; + } + + ret = ioctl(fd, EVIOCGNAME(EP_INPUT_NAME_SIZE), dev_name); + if (ret < 0) { + perror("unable to get the name"); + } else { + printf("%s is %s\n", eps[i]->d_name, dev_name); + } + + close(fd); + } + + return 0; +} -- cgit v1.2.3