我已经写了一个小程序,通知任何耳机或麦克风连接与否。 我提供了一个文件path来标识,有没有什么办法通过C程序知道哪个文件path是麦克风或耳机?
这个程序是:
#include <linux/input.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <fcntl.h> int main() { int fd = -1; char name[256]= {'\0'}; struct input_event event; /*On my system /dev/input/event6 for headphone /dev/input/event5 for mic */ if ((fd = open("/dev/input/event6", O_RDONLY)) < 0) { perror("evdev open"); exit(1); } if(ioctl(fd, EVIOCGNAME(sizeof(name)), name) < 0) { perror("evdev ioctl"); } printf("The device name on path %s is === %s\n Now Plug in or Plug out the device\n", argv[1],name); // while(1) { read(fd, &event, sizeof(struct input_event)); printf("Event type is %d\n", event.type); printf("Event code is %d\n", event.code); printf("Event value is %d\n", event.value); } close(fd); return 0; }
在这里我需要提供打开的path,我想我的程序应该确定麦克风或耳机的path。 有没有办法做到这一点? 有一些帮助是很好的。 谢谢,