我正在开发一个带有操纵杆的 C 程序,我想获得最后一个事件,它是 js0 文件的最后一行。我试图将光标移动到最后一个元素之前,但它似乎不起作用。知道为什么吗?
int fd = open ("/dev/input/js0", O_RDONLY);
struct js_event e;
lseek(fd, -(sizeof(e)), SEEK_END);
read (fd, &e, sizeof(e));
switch(e.type){
case JS_EVENT_BUTTON: printf("btn\n");
break;
case JS_EVENT_AXIS: printf("axes\n");
break;
default: printf("smth else\n");
}
我确定我正在阅读的文件至少是 (sizeof(e)) 长。Lseek 返回 -1 所以我得到了 errno 并且是 29 - 非法搜索:为什么这应该是非法搜索?即使我使用 0 作为偏移量,我也会得到相同的结果
lseek(fd, 0, SEEK_END)
我正在使用最新版本的 Ubuntu,感谢您的帮助