gpt4 book ai didi

c - linux读取字符设备

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:06 32 4
gpt4 key购买 nike

我在终端中输入时读取了设备文件/dev/hidraw0猫/dev/hidraw0因为 hidraw0 是 usb 鼠标,输出是一个字符序列。这个序列是在我移动鼠标、单击和滚动时生成的。

然后我也用 C 程序尝试了这个。代码是,

include<stdio.h>

int main()
{
FILE *ptr_file;
char buf[1000];

ptr_file =fopen("/dev/hidraw0","r");
if (!ptr_file)
return 1;

char c;
while (1)
{
c=fgetc(ptr_file);
if(c != NULL)
printf("%c",c);
else
printf("");
}

fclose(ptr_file);
return 0;
}

这也生成了相同的(我想)字符序列。但是以一种非常异步的方式。它没有像 cat/dev/hidraw0 命令那样快速更新。

为什么会这样?

最佳答案

尝试通过调用 setvbuf() 来禁用 ptr_file 缓冲使用 _IONBF

关于c - linux读取字符设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14539136/

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