簡體   English   中英

觀察到在beaglebone black上讀取事件文件C和python的差異

[英]Observed difference in reading event file C and python on beaglebone black

我已經使用了以下技巧:

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

該python代碼通過讀取事件文件來工作,然后文件讀取調用將成為阻塞調用,直到事件發生為止。

使它正常工作之后,我創建了一個模仿python代碼的ac實現,並在讀取文件時遇到了好奇:python中的“ / dev / input / event1”,使用了以下命令:

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

如前所述,這段代碼是阻塞調用,直到發生一個事件為止,然后這段代碼在執行C實現后讀取1事件的內容,我發現我需要以下代碼才能使其工作:

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

從python實現中可以看出,我讀取了32個字符,而在C實現中,我讀取了8個字符,但是我發現它們都從文件中讀取了相同數量的信息,因為它們在每次發生的事件中都反應出色,有人知道為什么嗎?

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

另外,檢查您的返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM