Linux虚拟终端控制小键盘灯

Linux内核提供函数 ioctl 用于控制底层设备与描述符。参数KDSETLED指示小键盘灯的状态,0x01为scroll lock灯亮,0x02为num lock灯亮, 0x04为caps lock灯亮。

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <linux/kd.h>
#include <sys/types.h>
#include <sys/ioctl.h>
 
int ERROR=-1;
 
int main(int argc, char** argv)
{
   int fd;
   if ((fd = open("/dev/console", O_NOCTTY)) == ERROR) {
      perror("open");
      exit(ERROR);
   }
   ioctl(fd, KDSETLED, 0x01);
   usleep(50000);
   ioctl(fd, KDSETLED, 0x02);
   usleep(50000);
   ioctl(fd, KDSETLED, 0x04);
   usleep(50000);
   ioctl(fd, KDSETLED, 0x01);
   close(fd);
   return 0;
}

编译:gcc test.c -o test

root用户运行, 指示灯依次闪亮,最后scroll lock灯亮。

posted @   liyropt  阅读(1479)  评论(1编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
点击右上角即可分享
微信分享提示