我尝试运行以下示例代码。 ioctl返回-1,错误为“无效参数”。我知道的是,这里的ioctl用于检查换档状态。按下Shift键时,ioctl是否返回成功?如果没有,我如何知道使用ioctl按下了Shift键? 另外,它在xterm下。
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
int main()
{
char shift_state;
shift_state = 6;
if (ioctl(0, TIOCLINUX, &shift_state) < 0) {
perror("ioctl TIOCLINUX 6 (get shift state)");
exit(1);
}
printf("%x\n", shift_state);
return 0;
}