gpt4 book ai didi

python - 在 beaglebone black 上读取事件文件 C 和 python 时观察到的差异

转载 作者:行者123 更新时间:2023-11-30 17:23:26 25 4
gpt4 key购买 nike

我使用了以下图例:

http://hipstercircuits.com/capture-input-events-via-gpio-on-beaglebone-black/

这段Python代码通过读取事件文件来工作,文件读取调用是一个阻塞调用,直到事件发生。

让它工作后,我创建了一个模仿python代码的c实现,并产生了好奇,当在python中读取文件:“/dev/input/event1”时,使用了以下命令:

evt_file = open("/dev/input/event1", "rb")
while True:
evt = evt_file.read(16)
evt_file.read(16)
#Do stuff

正如之前所说,这段代码是一个阻塞调用,直到发生一个事件,然后这段代码读取1个事件的内容,在做了C实现之后,我发现我需要下面的代码来实现工作:

unsigned char *buffer[8];
fp = fopen("/dev/input/event1", "r");
while(1)
{
fread(&buffer, sizeof(*buffer), 8, fp);
//Do stuff
}

可以看出,在 python 实现中我读取了 32 个字符,在 C 实现中我读取了 8 个字符,但我发现它们都从文件中读取了相同数量的信息,因为它们每个事件都会准确地 react 一次我生成,有人知道为什么吗?

最佳答案

unsigned char buffer[8];
fp = fopen("/dev/input/event1", "r");
while(1)
{
fread(buffer, 1, sizeof(buffer), fp);
//Do stuff
}

此外,请检查您的返回值。

关于python - 在 beaglebone black 上读取事件文件 C 和 python 时观察到的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com