在c中的linux上使用xdd进行分配

在c中的linux上使用xdd进行分配,c,linux,linux-kernel,driver,xxd,C,Linux,Linux Kernel,Driver,Xxd,我试图比较位于的操纵杆文件驱动程序的最后一个值 /dev/input/js0 为了进行测试,在linux shell中,我使用xxd进行十六进制转储: xxd -c1 -p /dev/input/js0 我看到了我想要的价值,直到一切都好起来 我想制作一个c代码,当文件的最后一个字节为1时,它会打印一条消息。但我不知道如何将该字节分配给变量,因为文件js0会随着每个键的按下而改变它的值 这是我的密码 #include<stdio.h> #include<stdlib.

我试图比较位于的操纵杆文件驱动程序的最后一个值

/dev/input/js0

为了进行测试,在linux shell中,我使用xxd进行十六进制转储:

xxd -c1 -p /dev/input/js0
我看到了我想要的价值,直到一切都好起来

我想制作一个c代码,当文件的最后一个字节为1时,它会打印一条消息。但我不知道如何将该字节分配给变量,因为文件js0会随着每个键的按下而改变它的值

这是我的密码

    #include<stdio.h>
#include<stdlib.h>
#include<unistd.h>



int main(int argc, char **argv){


system("sudo chmod 777 /dev/input/js0");
system("xxd -c1 -p /dev/input/js0");




return 0;
}
#包括
#包括
#包括
int main(int argc,字符**argv){
系统(“sudo chmod 777/dev/input/js0”);
系统(“xxd-c1-p/dev/input/js0”);
返回0;
}

但我不知道如何继续。我是否应该将xxd保存在另一个文件中,并在保存的同时读取它?如何操作?

鉴于操纵杆设备在正常操作中永远不会到达流的末端,您的问题实际上没有多大意义。。。没有“最后一个字节”这样的东西,它是一个连续的流。现在,如果你想用操纵杆设备做任何有意义的事情,请阅读。它实际上非常简单,操纵杆设备产生的数据只是一个结构中编码的事件序列,您可以直接从设备文件中读取。是xdd还是xxd?标题、代码和标签对此不一致。不过,这有什么关系吗?也就是说,没有所谓的“linux外壳”。Linux上有各种各样的shell,比如
zsh
fish